AJAX - Variable PHP que pierde su valor

 
Vista:
sin imagen de perfil

Variable PHP que pierde su valor

Publicado por Victor (29 intervenciones) el 13/09/2014 12:26:30
Buenas tardes.

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.

PD:En un intento a la desesperada trate de arreglarlo haciendo que fuese una variable global:
global $estadoEmbarazo;
Pero sigue sin dar resultado.
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
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Variable PHP que pierde su valor

Publicado por xve (222 intervenciones) el 13/09/2014 19:05:03
Hola Victor, por lo que comentas, entiendo que no se visualiza en el input, verdad?

prueba así:
1
<input type="hidden" name="estEmbarazo" id="estEmbarazo" value="<?php echo $estadoEmbarazo; ?>">

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
sin imagen de perfil

Variable PHP que pierde su valor

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

No es que no visualice en el input el valor de $estEmbarazo(visualizarlo o no me da igual) lo importante es saber que valor tiene fuera del div "resultado".
Para visualizarlo está el <?php echo "estado= ".$estadoEmbarazo."despues del valor;" ?>
El cual imprime por pantalla:
estado= despues del valor;

No sé si me explico

Saludos,espero vuestros comentarios
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
sin imagen de perfil

Variable PHP que pierde su valor

Publicado por Victor (29 intervenciones) el 25/09/2014 18:42:50
Lo he hecho tal como me dices xve y no funciona.
Quieres que ponga el codigo de la pagina al completo por si ves algo que yo no?

Quedo a la espera de tu respuesta,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
Imágen de perfil de xve
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Variable PHP que pierde su valor

Publicado por xve (222 intervenciones) el 25/09/2014 20:35:59
El problema victor, es que no se muy bien cual es el problema que tienes... si me puedes mostrar la pagina para probarla, haber si así veo exactamente donde tienes el error.
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
sin imagen de perfil

Variable PHP que pierde su valor

Publicado por Victor (29 intervenciones) el 25/09/2014 21:44:25
Aqui la tienes.
En el div resultado si se muestra bien el valor,cuando le quito el hidden pero dicho valor no le llega la input estEmbarazo.Te he marcado estas dos partes en negrita para que te sea mas facil verlo.

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
257
258
259
260
261
262
263
264
265
<?php
/**
 * Created by JetBrains PhpStorm.
 * User: Victor Bachiller
 * Date: 6/08/14
 * Time: 18:24
 * To change this template use File | Settings | File Templates.
 */
require_once("cuadricula.php");
require_once("includeBoxGestacion.php");
if($_GET["valor"]!=null)
{
    $valorEntrada= $_GET["valor"];
}
$valores=poblarBoxGestacion($valorEntrada);
?>
<div id="resultado"  hidden="hidden">
    <?php
    //Estado actual del embarazo.
    //$estadoEmbarazo =$valores['boxes'][0]['estadoEmbarazo'];
    $estadoEmbarazo =$_POST["estadoEnviado"];
    //echo "".$estadoEmbarazo;
    ?>
</div>
<!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="js/jquery-1.11.1.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("controlesGestacion").getElementsByTagName("input");
            for(i=0;i<controles.length;i++)
            {
                controles[i].value="";
            }
            document.reload();
        }
    }
 
 
    function guardar(id)
    {
        //alert("Dentro de guardar gestacion Box vale"+id);
            document.frmBoxGestacion.action="interiorBoxGestacion.php?accion=guardar&id="+id+"&valor="+id;
            document.frmBoxGestacion.submit();
            //alert("Se ha guardardo");
        document.reload();
    }
 
    var estadoActual=1234;
 
    function marcarEstadoInicial(estado)
    {
        estadoActual=estado;
        //alert("holaaaaaa");
        //alert("Estado inicial vale"+estadoActual);
        switch (estado)
        {
            case 1:
                document.frmBoxGestacion.estado[0].checked=true;
                document.frmBoxGestacion.estado[1].checked=false;
                document.frmBoxGestacion.estado[2].checked=false;
                break;
            case 0:
                document.frmBoxGestacion.estado[0].checked=false;
                document.frmBoxGestacion.estado[1].checked=true;
                document.frmBoxGestacion.estado[2].checked=false;
                break;
            case 2:
                document.frmBoxGestacion.estado[0].checked=false;
                document.frmBoxGestacion.estado[1].checked=false;
                document.frmBoxGestacion.estado[2].checked=true;
                break;
        }
 
        $.ajax({
 
            data:  {estadoEnviado: estadoActual},
 
            url:   'interiorBoxGestacion.php',
 
            type:  'post',
 
            /*beforeSend: function () {

                $("#resultado").html("Procesando, espere por favor...");

            },*/
 
            success:  function (response) {
 
                $("#resultado").html(response);
 
            }
 
        });
    }
 
    /*
    * Funciona para marcar el estado en que se encuentra madre actualmente.
    */
    function marcaEstado(estado)
    {
        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>
<body onload="javascript:marcarEstadoInicial(<?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="controlesGestacion">
                    <form name="frmBoxGestacion" enctype="multipart/form-data" 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 type="date" name="fchEntrada" value="<?php echo $valores['boxes'][0]['fechaEntrada']?>" id="fechaEntrada"
                                       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 name="estado" type="radio" checked="" value="1"  title="Si">Si
                                    <input name="estado" type="radio" checked="" value="0" >No
                                    <input name="estado" type="radio" checked="" value="2" >No lo se
                                    <input type="hidden" name="estEmbarazo" id="estEmbarazo" value="<?php echo $estadoEmbarazo; ?>">
                            </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>

Quedo a la espera de tu respuesta.
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
Val: 90
Oro
Ha mantenido su posición en AJAX (en relación al último mes)
Gráfica de AJAX

Variable PHP que pierde su valor

Publicado por xve (222 intervenciones) el 26/09/2014 09:54:33
Hola Victor, lo que veo, es que la variable $_POST["estadoEnviado"]; no la envías nunca!!

Es decir, creo que esa variable siempre esta vacía, nunca tiene valor... o cuando se llama a esta página se envía esa variable por $_POST desde otro formulario?
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
sin imagen de perfil

Variable PHP que pierde su valor

Publicado por Victor (29 intervenciones) el 26/09/2014 10:04:30
Buenos dias.
La variable $estadoEmbarazo dentro del div(el que está en negrita) que hay en la parte superior si toma valor ya que como comenté,o creo que lo comenté,si le quito el hidden al div y descomento el echo que hay mas abajo si muestra el valor por pantalla.
Por tanto mi idea es coger la variable estadoEmbarazo y asignarle su valor al input estEmbarazo.
Yo pensaba que mediante ajax podia hacer el post y que este estaba al margen del formulario.
Por tanto voy a probar a meter el div <div id="resultado" hidden="hidden"> dentro del formulario para ver si es por eso el motivo por el cual fuera del div,estando fuera del formulario, que la variable $estadoEmbarazo queda vacia.

Lo pruebo y te comento.
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
sin imagen de perfil

Variable PHP que pierde su valor

Publicado por Victor (29 intervenciones) el 29/09/2014 16:44:52
Buenas tardes.

Ya está resuelto,aunque hay una cosa que sigue sin hacer y no entiendo por que pero como no es necesario pues pasing....
Las solucion fue meter el div dentro de la pagina,pero hidden claro, y no utilizar el la valor de la variable(que aun no he conseguido utilizarlo) simplemente he enviado he mandado mediante el post al fichero que guarda los cambios la opccion seleccionada actualmente.

No sé si me he explicado bien,saludos y gracias.
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