Foros del Web » Programando para Internet » PHP »

Ayuda

Estas en el tema de Ayuda en el foro de PHP en Foros del Web. Hola, estoy haciendo un ejercicio que trata de rectificar un campo de un archivo, este campo quiero que me salga en el formulario de rectificar ...
  #1 (permalink)  
Antiguo 09/06/2010, 04:38
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Ayuda

Hola, estoy haciendo un ejercicio que trata de rectificar un campo de un archivo, este campo quiero que me salga en el formulario de rectificar señalizado o no segun esté en la base de datos. El tipo de presentacion del formulario es type="checkbox"
Lo tengo asi:

<input name='blanco' type='checkbox' value='Si' <?php if $row[blanco]=Si {checked}; ?>Blanco

No se si me he explicado bien, lo aclaro:
Tengo un formulario de entrada de datos ( todo bien ) y un formulario para modificar esos datos.
La presentación de esos datos en el formulario de rectificación es del type="checkbox" y quiero que el cuadrito esté marcado o no segun el valor sea Si o sea nulo
Gracias
  #2 (permalink)  
Antiguo 09/06/2010, 07:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Ayuda

La idea ya la tienes solo debes usar condiciones.
Código PHP:
Ver original
  1. <input type='checkbox' name='foo' <?php echo $row['foo'] == 'si' ? 'checked="checked"' : ''; ?> />
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 09/06/2010, 10:36
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

Como ves en la exposicion del tema, la condiciona ya van puestas if pero no me sale el cuadrito con la marca.
El codigo lo he puesto asi:

<input type='checkbox' name='blanco' value='Si' <?php if '$row[blanco]' == 'Si'? 'checked=checked':''; ?> Blanco
  #4 (permalink)  
Antiguo 09/06/2010, 10:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Ayuda

¿Habrá intentado lo que te mencioné?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 09/06/2010, 11:03
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

En esto del php estoy en pañales, osea soy muy novato
¿ Que quieres decirme ?
  #6 (permalink)  
Antiguo 09/06/2010, 11:19
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 14 años
Puntos: 3
Respuesta: Ayuda

Hola:

creo que lo que te comenta es lo correcto, debes de intentarlo, en tu caso quedaria asi:

Código HTML:
<input name='blanco' type='checkbox' value='Si' <?php if ($row['blanco']=Si ){echo "checked"; } ?> >Blanco
Otra forma seria de esta manera:
Código PHP:

echo "<input name='blanco' type='checkbox' value='Si'";

if (
$row['blanco']=Si )
{    echo 
" checked ";   }

echo 
">Blanco"
o bien:

Código PHP:

if ($row['blanco']=Si )
{    
$checked="checked";   
}else
$checked="";

echo 
"<input name='blanco' type='checkbox' value='Si' $checked>Blanco"
Esto ya es poniendo todo el checkbox dentro de codigo php, debes de checar bien las comillas y los puntos y comas. tambien cerrar bien el input.

Espero y esto te ayude.

Saludos!!!
  #7 (permalink)  
Antiguo 10/06/2010, 02:38
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

No se si será por diferentes versiones de php pero el caso es que ninguna solucion de las que me dais me funciona, todas dan errores bien por las "" bien por problemas de variable $row['blanco'] asi no la acepta asi $row[blanco] si , la última opción no acepta la variable $checked, da error.
llevo todo el dia de ayer con esta aparente tonteria y no consigo que me haga el proceso.
¿ Alguien que pruebe en una version php 5,3,0 para ver como se hace ?
  #8 (permalink)  
Antiguo 10/06/2010, 08:10
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 14 años
Puntos: 3
Respuesta: Ayuda

Hola:

a ver checha esto...

Código PHP:

$blanco
=$row[blanco];

if (
$blanco=="Si" or $blanco=="si"
{    
$checked="checked";    

}else 
      
$checked=""

//esto solo para que visualizes lo que contienen $checked y $blanco y veas si estan pasando vien los valores
echo "blanco: $blanco<br>cheked: $checked<br>";

echo 
"<input name=\"blanco\" type=\"checkbox\" value=\"Si\" ".$checked.">Blanco"
Trata de jugar con la sintaxis de el codigo porque por ahi ha de estar el problema, si no te funcionan las comillas simples intenta con la comilla doble acompañada con la diagonal, como puse en el ejemplo, o bien los valores no se estan recibiendo, por ahi ha de estar el problema, yo tengo una costumbre ke no se si sea buena o mala... a cada variable ke paso la imprimo con un echo para checar que se esten tomando bien los valores.

Espero poder ayudarte en algo...

Suerte!!!

Última edición por roxhp; 10/06/2010 a las 08:28
  #9 (permalink)  
Antiguo 10/06/2010, 13:57
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

Vamos a ver, esto no funciona y debe tener una explicación fuera de la simple condicion <?php if ($row [blanco]='Si') {checked='checked';} ?>Blanco
Como se trata de rectificar campos de un archivo, voy a simplificar el desarrollo del scrip:

<?php
//Conexion con la base
mysql_connect("localhost","root","");
mysql_select_db("base de datos");
$id = $_GET['id'];
$busqueda= mysql_query("SELECT * FROM tabla WHERE id='$id'");
while ($row = mysql_fetch_array($busqueda))
{
echo"
<FORM METHOD=POST ACTION=modificar.php>
<input name='blanco' type='checkbox' value='Si'<?php if ($row [blanco]='Si') {checked='checked';} ?> Blanco
.
.
.
.<input type=submit value='Modificar'>
";
}
?>

¿ Podria tratarse de que no se puedan poner las llaves dentro de otras llaves ?
  #10 (permalink)  
Antiguo 10/06/2010, 15:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda

exacto, no puedes meter las etiquetas de <?php ?> cuando ya estas en PHP!!

y peor aún, estas dentro de un string...
Código PHP:
echo 'foo' . ($candy == 1'does''nothing'); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 11/06/2010, 02:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

Entonces ¿ cual seria la solución ? ¿ me podeis poner un ejemplo?

Si no es posible de la forma que he hecho el script ¿ me podeis dar un ejemplo de script donde se presenten los datos existentes en la base de datos para poder modificarlos de las diferentes formas como texto, tipo checkbox, tipo menu desplegable ?
  #12 (permalink)  
Antiguo 11/06/2010, 08:46
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 14 años
Puntos: 3
Respuesta: Ayuda

Cheka esto....

Código PHP:
<?php
//Conexion con la base
mysql_connect("localhost","root","");
mysql_select_db("base de datos"); 
$id $_GET['id'];
$busquedamysql_query("SELECT * FROM tabla WHERE id='$id'");}

//el for aki porke sino cada vez que encuentres una respuesta te generara un nuevo formulario.
echo "<FORM METHOD=POST ACTION=modificar.php>";

//recolecta el numero de filas obtenidas en la consulta
$nr=mysql_num_rows($busqueda);

//si es mas de un registro lo que vas a recolectar te recomiendo que hagas un for para renombrar de diferente forma a los checkbox, si te es mas funcional puedes seguir usando el while
for($i=0;$i<$nr;$i++)
{
    
$row mysql_fetch_array($busqueda)
    
$blanco=$row['blanco'];

    if (
$blanco="Si"
   {    
$checked="checked";    
   }else 
         
$checked=""

   echo 
"<input name='blanco$i' type='checkbox' value='$blanco' $checked>Blanco"

}

//aki pasarias la variable i para recolectar los valores de los checkbox en la siguiente pagina utilizando nuevamente un ciclo for
echo "<input type=submit name='i' value='$i'>";

// igual ke con el form cada vez que haya una respuesta tendrias un nuevo boton de enviar, ademas debes de cerrar el form.
echo "<input type=submit value='Modificar'></form>";

?>
La verdad no se bien lo que quieres hacer pero una vez recolectando los datos de tu consulta los puedes mostrar, en tablas, campos de texto, menus desplegables, etc.

Lo unico que tienes que hacer es recolectar los valores ya sea en variables o vectores como prefieras, y asignarselos como valor a los input que prefieras como en el ejemplo( value='$blanco').

Espero y te sirva...

Saludos!!!

Última edición por roxhp; 11/06/2010 a las 09:05
  #13 (permalink)  
Antiguo 15/06/2010, 03:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

Esto no me funciona, siempre me el cuadrito marcado como que Si es blanco. Se trata de actualizar los campos de un registro, he puesto el código siguiente:

<?php
//Conexion con la base
mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("base de datos");
echo "<FORM METHOD=POST ACTION=actualizar.php>";
$busqueda= mysql_query("SELECT * FROM tabla WHERE id='1'");
while ($row = mysql_fetch_array($busqueda)){

echo "<td>Nombre: $row[username]</td><br>";
echo "<td>Telefono: $row[Telefono]</td><br>";
$Blanco=$row[Blanco];
if ($Blanco="Si")
{ $checked="checked";
}else
{ $checked="";}

echo "<input name='Blanco' type='checkbox' value='$Blanco' $checked>Blanco";
}
?>
</select>
<br>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>


Solo quiero que cuando en la base de datos Blanco=Si el cuadrito se marque y cuando en la base de datos Blanco="" no se marque el cuadrito
¿ Es tan dificil ? pues a mi no me sale, siempre sale marcado como que Si
  #14 (permalink)  
Antiguo 17/06/2010, 12:03
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 14 años
Puntos: 3
Respuesta: Ayuda

Hola:

Checa los valores que estas recibiendo de tu variable, imprime los valores en pantalla para que veas donde esta el error, el codigo que te pase a mi me sirve lo probe varias veces de distintas formas antes de enviartelo.

El problema o es en tu sintaxis o es en el valor que estas obteniendo.

Ahh por cierto aki if($Blanco="Si") lo correcto es if($Blanco=="Si") :P sorry.

Espero que pronto puedas solucionar tu problema porque de hecho es algo muy sencillo.
  #15 (permalink)  
Antiguo 17/06/2010, 12:17
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: Ayuda

¡¡¡¡¡¡¡¡¡AAAAAHORAAAAAAAA¡¡¡¡¡¡¡¡¡¡¡¡
Ahi estaba el error en el if($Blanco=="Si") en los dos signos ==

gracias por la ayuda

Etiquetas: Ninguno
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 12:05.