AJAX - Paginas superpuestas

   
Vista:

Paginas superpuestas

Publicado por Victor (19 intervenciones) el 11/09/2014 13:29:57
Buenas tardes.

Acabo de empezar con Ajax y Jquery y tengo un problema.
El asunto es que si utilizo un div si se ejecuta ajax y obtengo el valor que necesito pero se me superponen varias veces la misma pagina,tres concretamente,en la misma pantalla.
Y si no utilizo el div no obtengo ningun resultado o lo que es lo mismo $estadoEmbarazo vale siempre 0

Debo aclarar un par de cosas.
1.<?php echo $valores['boxes'][0]['estadoEmbarazo']?> es un valor de la BD y se obtiene correctamente.
2.Las librerias estan bien.
3.Si no entendeis lo de "Se me superponen 3 veces la pagina en la misma pantalla decidmelo y compartiré tambien la foto(que son 3 por que en una sola no cabe).
4.El alert("Por que lo dice Kami"+estadoActual); muestra el valor correctamente.

Aqui está el codigo de la pagina,el problema está desde donde pone <div id="controles">. hacia arriba"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
<?php
/**
 * Created by JetBrains PhpStorm.
 * User: A
 * Date: 2/08/14
 * Time: 18:24
 * To change this template use File | Settings | File Templates.
 */
require_once("cuadricula.php");
require_once("includeBoxGestacion.php");
?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" type="text/css" href="estilos.css"/>
    <script type="text/javascript" src="js/cambiarPestanna.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
    <title></title>
<script type="text/javascript">
 
 
    function vaciar()
    {
        if(confirm("Esta seguro de que desea vaciar los controles"))
        {
            var controles= document.getElementById("controles").getElementsByTagName("input");
            for(i=0;i<controles.length;i++)
            {
                controles[i].value="";
            }
        }
    }
 
 
    function guardar(id)
    {
        alert("Dentro de guardar");
 
        if(document.frmBoxGestacion.crotalMadre.value.length==0)
        {
            alert("Debes rellenar los campos")
        }
        else
        {
            //document.frmBoxPartos.action="interiorBoxPartos.php?accion=guardar&id="+id+"&valor="+id;
            document.frmBoxGestacion.action="interiorBoxGestacion.php?accion=guardar&id="+id+"&valor="+id;
            document.frmBoxGestacion.submit();
            this.reload();
            if(hecho==true)
            {
                alert("Se ha guardado correctamente");
            }
        }
    }
 
 
    var estadoActual=1;
    /*
    * Funciona para marcar el estado en que se encuentra madre actualmente.
    * */
    function marcaEstado(estado)
    {
        var emba=  document.frmBoxGestacion.embarazada;
        var noEmba= document.frmBoxGestacion.noEmbarazada;
        var  noSee=  document.frmBoxGestacion.noSe;
 
        switch (estado)
        {
            case 1:
                emba.checked=true;
                noEmba.checked=false;
                noSee.checked=false;
                break;
            case 0:
                emba.checked=false;
                noEmba.checked=true;
                noSee.checked=false;
                break;
            case 2:
                emba.checked=false;
                noEmba.checked=false;
                noSee.checked=true;
                break;
        }
 
 
        estadoActual=estado;
        alert("Por que lo dice Kami"+estadoActual);
        $.ajax({
 
            data:  {estadoEnviado: estadoActual},
 
            url:   'interiorBoxGestacion.php',
 
            type:  'post',
 
            beforeSend: function () {
 
                $("#resultado").html("Procesando, espere por favor...");
 
            },
 
            success:  function (response) {
 
                $("#resultado").html(response);
 
            }
 
        });
    }
 
</script>
</head>
<?php
if($_GET["valor"]!=null)
{
    $valorEntrada= $_GET["valor"];
}
$valores=poblarBoxGestacion($valorEntrada);
?>
<body onload="javascript:marcaEstado(<?php echo $valores['boxes'][0]['estadoEmbarazo']?>);" style="align:center;">
<div class="contenedor">
    <div class="titulo">GestionaTuFinca.com</div>
    <div id="pestanas">
        <ul id=lista>
            <li id="pestana1"><a href='index.php' >Salas</a></li>
            <li id="pestana2"><a href='silosVistaSilos.php'>Silos</a></li>
            <li id="pestana3"><a href='Animales.php'>Animales</a></li>
        </ul>
    </div>
    <body>
    <div id="contenidopestanas">
        <div id="cpestana1">
            <fieldset>
                    <legend>BoxGestacion</legend>
                    <label>
                        <?php
                        echo "Box:".$valorEntrada;
                        $valores=poblarBoxGestacion($valorEntrada);
                        ?>
                    </label>
                    <div id="resultado">
                        <?php
                        $estadoEmbarazo=$_POST["estadoEnviado"];
                        echo ""+var_dump($estadoEmbarazo);
                        echo ""+$_POST["estadoEnviado"];
                        ?>
                    </div>
                <div id="controles">
                    <form enctype="multipart/form-data" name="frmBoxGestacion" action="" method="post">
                    <table style="margin-top: 20px;border:black,10px;border-width: 2px;">
                        <tr>
                            <td style="text-align: left;">
                                <label>
                                    Crotal
                                </label>
                                <input name="crotal" value="<?php echo $valores['boxes'][0]['crotal']?>" style="width: 150px;text-align: left;margin-left: 80px;">
                            </td>
                            <td>
                                <label>
                                    Crotal Madre
                                </label>
                                <input name="crotalMadre" value="<?php echo $valores['boxes'][0]['crotalMadre']?>" style="width: 150px;text-align: left;margin-left: 6px;">
                                <button title="Ir" style="text-align:left;height: 20px;">
                                    <label>Ir</label>
                                </button>
                            </td>
                        </tr>
                        <tr style="margin-left: 0px;">
                            <td style="text-align: left;">
                                <label>
                                    Fecha de Entrada
                                </label>
                                <input name="fchEntrada" value="<?php echo $valores['boxes'][0]['fechaEntrada']?>" id="fechaEntrada" type="date"
                                       style="margin-left: 11px;width: 150px;"
    >
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>
                                    Inseminacion
                                </label>
                                <input name="fchInse" value="<?php echo $valores['boxes'][0]['fechaInse1']?>" style="width: 150px; margin-left: 40px" type="date">
                            </td>
                            <td>
                                <label>
                                    Inseminacion 2
                                </label>
                                <input name="fchInse2" value="<?php echo $valores['boxes'][0]['fechaInse2']?>" style="width: 150px;" type="date">
                            </td>
                            <td>
                                <label>
                                    Inseminacion 3
                                </label>
                                <input name="fhcInse3" value="<?php echo $valores['boxes'][0]['fechaInse3']?>" style="width: 150px;" ty type="date">
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label>
                                    Fecha Recelo
                                </label>
                                <input name="fchRecelo" value="<?php echo $valores['boxes'][0]['fechaEntrada']?>" type="date" style="margin-left: 35px;width: 150px;">
                            </td>
                            <td>
                                <label>
                                    Recelo 2
                                </label>
                                <input name="fchRecelo2" value="<?php echo $valores['boxes'][0]['fechaEntrada']?>" type="date" style="margin-left: 36px;width: 150px;">
                            </td>
                            <td>
                                <label>
                                    Recelo 3
                                </label>
                                <input name="fchRecelo3" value="<?php echo $valores['boxes'][0]['fechaEntrada']?>" type="date" style="margin-left: 36px;width: 150px;">
                            </td>
                        </tr>
                        <tr>
                            <td>
                                   <label style="margin-right: 35px;">
                                       Embarazada
                                    </label>
                                    <input type="radio" onclick="marcaEstado(1)" value="1" name="embarazada" title="Si">Si
                                    <input type="radio" onclick="marcaEstado(0)" value="0" name="noEmbarazada">No
                                    <input type="radio" onclick="marcaEstado(2)" value="2" name="noSe">No lo se
                            </td>
                            <td>
                                    <input style="visibility: hidden;" name="estadoEnviado" id="estadoEnviado">
                            </td>
                        </tr>
                    </table>
                </form>
            </div>
                <table style="padding-left: 350px;text-align: center;">
                    <tr>
                        <td>
                            <a href="javascript:guardar(<?php echo $valorEntrada?>)">
                                <input type="button" title="Guardar" value="Guardar">
                            </a>
                            <a href="VistaGestacion.php">
                                <input type="button" enable title="Volver" value="Volver">
                            </a>
                            <a href="javascript:vaciar()">
                                <input type="button" title="Vaciar" value="Vaciar">
                            </a>
                        </td>
                    </tr>
                </table>
            </fieldset>
        </div>
    </div>
    </body>
</html>

Muchas gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Paginas superpuestas

Publicado por xve (167 intervenciones) el 11/09/2014 18:37:54
Hola Victor, no te entiendo muy bien, pero cuando llamas a las paginas por AJAX, el contenido que devuelve dicha pagina, tiene que ser únicamente la parte que se va a mostrar dentro del div, no una pagina entera, con su <html>, <head>, etc...

Puede ser este el problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginas superpuestas

Publicado por Victor (19 intervenciones) el 11/09/2014 18:55:55
Seguramente será ese el problema.
Pero como pongo un div fuera del html ?
Dicho de otra forma,entiendo lo que me quieres decir,pero como lo arreglo?
Acabo de hacerlo fuera del html y se sigue solapando varias paginas,en este caso en vez de salirme 3 me salen 2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Paginas superpuestas

Publicado por xve (167 intervenciones) el 11/09/2014 19:04:29
Por ejemplo, si solo quieres que te devuelva una tabla, siemplemente en el archivo que llamas desde AJAX, que tenga la tabla:

1
2
3
4
5
<table>
    <tr>
        <td>Hola Mundo</td>
    </tr>
</table>

Cuando ese código se inserte en tu pagina, utilizara todos los estilos que ya esten definidos en la pagina que lo ha llamado.

No si si me he explicado bien... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginas superpuestas

Publicado por Victor (19 intervenciones) el 11/09/2014 19:53:11
Buenas tardes xve
Pos ya está,asunto resuellto.y para que me me aparezcan multiples paginas en la misma pantalla lo he hecho poniendo un div fuera de las etiquetas html pero hidden.
No creo que sea muy elegante pero funciona.

PD:Este foro no tiene ninguna forma de poner en el hilo algo parecido a Tema Resuleto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginas superpuestas

Publicado por Victor (19 intervenciones) el 11/09/2014 19:16:46
Buenas xve,un dia de estos sabré como te llamas :P.
Haber el problema se ha vuelto mucho mas simple gracias a tu aclaracion pero mucho mas raro:
<div id="resultado">
<?php
$estadoEmbarazo=$_POST["estadoEnviado"];
echo ""+$_POST["estadoEnviado"];
echo ""+$estadoEmbarazo;
?>
</div>
El primer echo muestra 1,que es su valor.Y cuando le hago un echo a la variable $estadoEmbarazo despues de haberle asignado el valor me muestra 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Paginas superpuestas

Publicado por xve (167 intervenciones) el 11/09/2014 19:49:37
Hola Victor, creo que estas haciendo algo mal, ya que estas intentando sumar las variables a unas comillas...

Prueba así:

1
2
echo "".$_POST["estadoEnviado"];
echo "".$estadoEmbarazo;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Paginas superpuestas

Publicado por Victor (19 intervenciones) el 12/09/2014 21:41:05
Buenas noches

Una cosilla,yo mediante ajax obtengo un valor y lo vuelco en una variable php.Si ese dia que me ivas a matar,una de tantas veces,le pongo un echo y he imprime su valor por pantalla correctamente.Cierro php y abro html y le asigno al value de un input hidden el valor de esa variable y le pongo un echo en la linea anterior a ese input y la varriable que antes tenia un valor ya no lo tiene.
Esto está fuera de las etiquetas html y en esta parte todo funciona bien(el div estará hidden para no romper la pagina pero de momento lo dejo así para ver que todo va bien)
<div id="resultado">
<?php
//Estado actual del embarazo.
$estadoEmbarazo=$_POST["estadoEnviado"];
echo ""+$_POST["estadoEnviado"];
echo "".$estadoEmbarazo;
?>
</div>

Y esto está dentro de las eyiquetas html,ya que necesito que forme parte del formulario que envia los datos.

<?php echo "estado= ".$estadoEmbarazo."despues del valor;" ?>
<input style="visibility: hidden;" name="estEmbarazo" id="estEmbarazo" value="<?php echo $estadoEmbarazo; ?>">

Por que no mantiene el valor?

Gracias por vuestro tiempo y atencion,saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar