Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Php no detecta value en hidden

Estas en el tema de Php no detecta value en hidden en el foro de PHP en Foros del Web. Tengo esto: Código PHP: < input type = "hidden"  name = "dispo"  value = "0"  />  El problema es que tengo varios 3 hidden que cambie ...
  #1 (permalink)  
Antiguo 24/04/2016, 15:37
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Php no detecta value en hidden

Tengo esto:

Código PHP:
<input type="hidden" name="dispo" value="0" /> 
El problema es que tengo varios 3 hidden que cambie porque los tenia en unos select pero decidí ponerlos en hidden, y pues al poner este me sale que esta vacío y los demás me salen normal, y al ponerlo de la siguiente manera:

Código PHP:
<select name="dispo">
<
option value="0">No mostrar</option>
<
option value="1">Mostrar</option
Si me lo agrega a la base de datos normalmente, como puedo arreglar esto y pasarlo por hidden?
  #2 (permalink)  
Antiguo 24/04/2016, 15:48
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Php no detecta value en hidden

Bastante raro el error, pero si es un sistema propio el que estas haciendo puedes hacer tomar el valor de 0 => 1 y el valor de 1 => 2, trabajar con 1 y 2, si no se te dificulta mucho cambiar etos parametros
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #3 (permalink)  
Antiguo 24/04/2016, 15:56
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Php no detecta value en hidden

Hola:

Si hay más de un campo con el mismo nombre, se trata de un array, y en esos casos, el nombre debe terminar en un juego de corchetes: name="dispo[]". Si lees la url puedes comprobarlo (si el método es get).

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 24/04/2016, 16:02
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Gracias por responder, petit89 intenté colocando 1 en vez de 0 e igual me lanza error como si estuviera vacío, me funciona es con el select y la verdad prefiero no usar select en este caso.

caricatos: No puedo colocar los corchetes y uso el método post ya que es un formulario largo y prefiero usar post, la verdad no se que pueda ser ni por que me genera este error :(
  #5 (permalink)  
Antiguo 24/04/2016, 16:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Php no detecta value en hidden

Hola:

Cita:
Iniciado por byrong Ver Mensaje
...
caricatos: No puedo colocar los corchetes...
¿Es por alguna religión...? Te recomiendo este tuto: El abc de los formularios.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 24/04/2016, 16:41
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por caricatos Ver Mensaje
Hola:



¿Es por alguna religión...? Te recomiendo este tuto: El abc de los formularios.

Saludos
Jajajaja no, pues recibo así:

Código PHP:
$dispo mysql_real_escape_string($_POST['dispo']); 
Y lo demás como te lo mostré pero me sale un error al colocar los corchetes..

Y además por que no pasa eso cuando lo hago con el select?

Última edición por byrong; 24/04/2016 a las 16:42 Razón: Se me olvido poner algo..
  #7 (permalink)  
Antiguo 24/04/2016, 22:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Php no detecta value en hidden

Hola:

Espero que hayas leído el tutorial, que hice después de muchas pruebas y también muchos temas de estos foros...

Como te conté, con los corchetes, php los considera array, así que antes de escapar la respuesta, deberías obtener los ítems:

$dispos = $_POST["dispo"];
foreach ($dispos...

Sobre los select, no devuelven arrays a no ser que se trate de los "multiple"... si el error es con javascript, también debes referenciar los corchetes en el selector que uses. Pero aunque no conozco tus razones, creo que podrías usar un solo input, y cambiar su value; o usar un checkbox o dos radios... y tampoco hablaríamos de arrays.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 26/04/2016, 17:23
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por caricatos Ver Mensaje
Sobre los select, no devuelven arrays a no ser que se trate de los "multiple"... si el error es con javascript, también debes referenciar los corchetes en el selector que uses. Pero aunque no conozco tus razones, creo que podrías usar un solo input, y cambiar su value; o usar un checkbox o dos radios... y tampoco hablaríamos de arrays.

Saludos
Lo que pasa es que con lo que necesito usar necesito pasarlo por hidden y si coloco el select no me lo selecciona automáticamente y al enviarlo me sale que falta algún campo, y cuando lo paso por hidden sale lo mismo, intento con los corchetes y da igual, en el input coloque name="dispo[]" y me sale un error:

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in on line 30
y si le quito el escape_string me sale que esta vacío, que crees que deba hacer?:(
  #9 (permalink)  
Antiguo 26/04/2016, 17:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Php no detecta value en hidden

Cita:
Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in on line 30
Pues es porque dicha función no la puedes usar con arrays, pero puedes usar array_map() para aplicar la función sobre cada elemento del array, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 26/04/2016, 21:59
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues es porque dicha función no la puedes usar con arrays, pero puedes usar array_map() para aplicar la función sobre cada elemento del array, consulta el manual.
La cosa es que acá no me interesan los arrays, como caricatos dijo que lo hiciera de esa manera pues intenté, lo único que quiero es pasar el número 1 en forma hidden pero al hacer eso me sale que el campo esta vacío...
  #11 (permalink)  
Antiguo 26/04/2016, 22:27
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Php no detecta value en hidden

Recuerda que el hidden debe estar dentro de las etiquetas form, dado que es parte del mismo... muestranos tu codigo de formulario y de ser posible como lo recibes, asi te podremos ayudar de mejor manera
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #12 (permalink)  
Antiguo 27/04/2016, 01:13
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años
Puntos: 25
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por byrong Ver Mensaje
Tengo esto:

Código PHP:
<input type="hidden" name="dispo" value="0" /> 
El problema es que tengo varios 3 hidden que cambie porque los tenia en unos select pero decidí ponerlos en hidden, y pues al poner este me sale que esta vacío y los demás me salen normal, y al ponerlo de la siguiente manera:

Código PHP:
<select name="dispo">
<
option value="0">No mostrar</option>
<
option value="1">Mostrar</option
Si me lo agrega a la base de datos normalmente, como puedo arreglar esto y pasarlo por hidden?
¿Has probado value = 1 ?
Código PHP:
<input type="hidden" name="dispo" value="1" /> 
A ver, si el problema está cuando parseas y compruebas los parametros POST al recogerlos.

Recuerda que el valor "0", es interpretado como FALSE.

Si al recogerlo haces esto:
Código PHP:
if($_POST['dispo'] ){
   
//Codigo de inserción en base de datos.
}
else{
  echo 
"Error dispo es null"

Cuando dispo sea "0", dara como false.

O si haces tambien:
Código PHP:
//Lo parseas a entero
$dispo = (int)$_POST['dispo'] ; 
if(
$dispo != NULL){
   
//Codigo de inserción en base de datos.
}
else{
  echo 
"Error dispo es null"

En este caso cuando sea 0 tambien dara false... Aquí deberia comprobarse como:
($dispo !== NULL) en vez de ($dispo != NULL).
Código PHP:
if($dispo !== NULL){


Pero vamos para asegurarnos deberías hacer un var_dumb de $_POST['dispo'] o de todo $_POST.

Saludos.
  #13 (permalink)  
Antiguo 29/04/2016, 16:49
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por Amiancht Ver Mensaje
¿Has probado value = 1 ?
Código PHP:
<input type="hidden" name="dispo" value="1" /> 
Pero vamos para asegurarnos deberías hacer un var_dumb de $_POST['dispo'] o de todo $_POST.

Saludos.
Gracias por la ayuda, pero sigue igual, he hecho lo que me dijiste y pues no funciona, he probado en el mysql poniéndole TEXT, VARCHAR e INT para ver si eso tenía algo que ver pero sigue sin funcionar, la verdad creo que es el hidden porque no entiendo por que con el select (Con la opción 1 o 0) las dos opciones pasan a la base de datos, y ninguna de las dos funciona, ¿Alguna otra solución?

Saludos.
  #14 (permalink)  
Antiguo 29/04/2016, 17:36
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Php no detecta value en hidden

porque no nos muestras el codigo que ejecuta la consulta?.. desde como recibes hasta finalizar el proceso de guardado/modificado ???
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #15 (permalink)  
Antiguo 29/04/2016, 17:55
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por petit89 Ver Mensaje
porque no nos muestras el codigo que ejecuta la consulta?.. desde como recibes hasta finalizar el proceso de guardado/modificado ???
Recibo php:
Código PHP:
if(isset($_POST['añadir'])){
    
$dispo mysql_real_escape_string($_POST["dispo"]);

if(!empty(
$dispo)
    { 
        
$query_NuevaEmpresa mysql_query("INSERT INTO ".$db_table." SET dispo = '".$dispo."' 
No termina así la query, coloqué solo lo de dispo...

Hay otras más que agrego pero las corto para no alargar...

Acá tengo dos hidden, el dispo es el que me da problema, el otro pasa perfecto.

Código PHP:
    <input type="hidden" name="visible" value="0">
    <
input type="hidden" name="dispo" value="1" /> 
Y el botón submit que es el ['añadir']

Código PHP:
 <input type="submit" name="añadir" value="Agregar nueva" /> 
Todo funcionaba perfecto hasta que puse (Que lo necesito en hidden) hidden el dispo..

Saludos
  #16 (permalink)  
Antiguo 29/04/2016, 18:04
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Php no detecta value en hidden

esto esta mal:

Código PHP:
Ver original
  1. $query_NuevaEmpresa = mysql_query("INSERT INTO ".$db_table." SET dispo = '".$dispo."'

Para añadir un nuevo registro, INSERT es:
INSERT INTO TABLA (campos, en tabla) VALUES (valores,a,agregar)

Para actualizar un registro ya existente:
UPDATE TABLA SET campo_tabla="valor_nuevo", otro_campo="valor_nuevo" WHERE id="valor_id"

por tanto si el valor ya existe deberia ser tu consulta:
"UPDATE ".$db_table." SET dispo = '".$dispo."' WHERE campo_indicador="valor indicador de tu registro" "
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #17 (permalink)  
Antiguo 29/04/2016, 19:39
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Php no detecta value en hidden

Cita:
Iniciado por petit89 Ver Mensaje
esto esta mal:

Código PHP:
Ver original
  1. $query_NuevaEmpresa = mysql_query("INSERT INTO ".$db_table." SET dispo = '".$dispo."'

Para añadir un nuevo registro, INSERT es:
INSERT INTO TABLA (campos, en tabla) VALUES (valores,a,agregar)

Para actualizar un registro ya existente:
UPDATE TABLA SET campo_tabla="valor_nuevo", otro_campo="valor_nuevo" WHERE id="valor_id"

por tanto si el valor ya existe deberia ser tu consulta:
"UPDATE ".$db_table." SET dispo = '".$dispo."' WHERE campo_indicador="valor indicador de tu registro" "
Gracias bro, el problema estaba en que un valor estaba en 0 y tenían razón, cuando esta en 0 no lo reconoce...

Etiquetas: detecta, hidden, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:11.