Foros del Web » Programando para Internet » PHP »

chek no anda

Estas en el tema de chek no anda en el foro de PHP en Foros del Web. Hola a todos , lo que estoy intentando hacer es darle permisos a la base de datos para que haga tal cosa.. he intentado con ...
  #1 (permalink)  
Antiguo 08/02/2011, 12:49
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
chek no anda

Hola a todos , lo que estoy intentando hacer es darle permisos a la base de datos para que haga tal cosa.. he intentado con este codigo:
Código PHP:
<?php

while($registro=mysql_fetch_array($resultado)){

echo 
"<tr>";
    
echo 
"<td>";

echo 
$registro['titulos'];
echo 
"</td>";
echo 
"<td>";
echo 
$registro['parrafos'];
echo 
"<td width='50'><input type='radio' value='onn'  name=".$registro['id'].">on</td><td width='50'><input type='radio' value='off' name=".$registro['id'].">off</td>";

}
$registro mysql_fetch_array($resultado);
$rows mysql_num_rows($resultado);
echo 
"<br/><input type='submit' name='ace' value='Aceptar'>";

?>


</td></tr></table> 
<?php if (isset($_POST['ace'])){
 
mifuncion();

function 
mifuncion(){
echo 
"si se presiono";

for(
$i=0$i>$rows$i++){
if (isset(
$_POST[$i])){
echo 
"Se ha presionado el boton radio.$i.<br/>";

echo 
"tambien se preciono el radio con name 1";
echo 
$i;

}}}
?>
pero no me anda la parte del checkeado...
  #2 (permalink)  
Antiguo 08/02/2011, 13:03
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: chek no anda

¿que parte del "check" no funciona? no entiendo tu problema
  #3 (permalink)  
Antiguo 08/02/2011, 13:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: chek no anda

Yo normalmente no abro y cierro las etiquetas de php una y otra vez, así que no estoy seguro, pero ¿no al recorrer el for en for($i=0; $i>$rows; $i++){ $row carece de valor?

Por qué no tratas de recuperar directamente el valor del radio (con $_POST["name_radio"]) y verificas si lo recibes o no?
  #4 (permalink)  
Antiguo 08/02/2011, 13:09
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: chek no anda

¿te refieres a este check?

<input type='radio' value="true" checked name=".$registro['id'].">on</td>
  #5 (permalink)  
Antiguo 08/02/2011, 13:13
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: chek no anda

si ocp001a lo recibo ahora asi me funciona mejor
Código PHP:
<?php if (isset($_POST['ace'])){
 
mifuncion();
 
$rows mysql_num_rows($resultado);

function 
mifuncion(){
echo 
"si se presiono";

for(
$i=1$i<99$i++){
if (isset(
$_POST[$i])){
echo 
"lal";

echo 
"tambien se preciono el radio con name";
echo 
$i;
echo 
"<br/>";
}}}
?>
lo que tengo problema es con la variable $rows .. no me pone el valor en la condicion del for
  #6 (permalink)  
Antiguo 08/02/2011, 13:14
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: chek no anda

Saludos

Revisa los comentarios que te indico en el código!
Código PHP:
<?php
while ($registro mysql_fetch_array($resultado)) {

    echo 
"<tr>";

    echo 
"<td>";

    echo 
$registro['titulos'];
    echo 
"</td>";
    echo 
"<td>";
    echo 
$registro['parrafos'];
    echo 
"<td width='50'><input type='radio' value='onn'  name=" $registro['id'] . ">on</td><td width='50'><input type='radio' value='off' name=" $registro['id'] . ">off</td>";
    
//Maneja comillas sencillas en los name
    //Donde esta el form?? Esto es todo el fomulario?
    
}
$registro mysql_fetch_array($resultado);//Por que repites esta parte del codigo
$rows mysql_num_rows($resultado);
echo 
"<br/><input type='submit' name='ace' value='Aceptar'>";
?>


</td></tr></table> 
<?php
if (isset($_POST['ace'])) {
    
mifuncion();
}

function 
mifuncion() {
    echo 
"si se presiono";
    
//$rows que es???
    
for ($i 0$i $rows$i++) {
        if (isset(
$_POST[$i])) {//Esto esta mal
            
echo "Se ha presionado el boton radio.$i.<br/>";

            echo 
"tambien se preciono el radio con name 1";
            echo 
$i;
        }
    }
}
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 08/02/2011, 13:17
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: chek no anda

Cita:
Iniciado por Nano_ Ver Mensaje
Saludos

Revisa los comentarios que te indico en el código!
Código PHP:
<?php
while ($registro mysql_fetch_array($resultado)) {

    echo 
"<tr>";

    echo 
"<td>";

    echo 
$registro['titulos'];
    echo 
"</td>";
    echo 
"<td>";
    echo 
$registro['parrafos'];
    echo 
"<td width='50'><input type='radio' value='onn'  name=" $registro['id'] . ">on</td><td width='50'><input type='radio' value='off' name=" $registro['id'] . ">off</td>";
    
//Maneja comillas sencillas en los name
    //Donde esta el form?? Esto es todo el fomulario?
    
}
$registro mysql_fetch_array($resultado);//Por que repites esta parte del codigo
$rows mysql_num_rows($resultado);
echo 
"<br/><input type='submit' name='ace' value='Aceptar'>";
?>


</td></tr></table> 
<?php
if (isset($_POST['ace'])) {
    
mifuncion();
}

function 
mifuncion() {
    echo 
"si se presiono";
    
//$rows que es???
    
for ($i 0$i $rows$i++) {
        if (isset(
$_POST[$i])) {//Esto esta mal
            
echo "Se ha presionado el boton radio.$i.<br/>";

            echo 
"tambien se preciono el radio con name 1";
            echo 
$i;
        }
    }
}
hahaha, si fuera su maestro, le diría: ¡vuelvelo a hacer!
  #8 (permalink)  
Antiguo 08/02/2011, 13:23
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: chek no anda

ahi te dejo el codigo entero...
Código PHP:
<html>
<head>

</head>
<body>
<?php $conexion mysql_connect("localhost""root""") or die("Problemas en la conexion");
mysql_select_db("roberto"$conexion) or die ("Problema al seleccionar bd");



$strselect="select * from home ORDER BY id asc LIMIT 6";
$resultado=mysql_query($strselect,$conexion);

?><form action='archimodel.php' method='POST'>
<table cellspacing='0' cellpading='0' border='1' width='500'> 

<tr>
<td>
<b>Titulo</b>
</td>
<td>
<b>Parrafos<b/>
</td></tr>
<?php
$rows 
mysql_num_rows($resultado);
while(
$registro=mysql_fetch_array($resultado)){

echo 
"<tr>";
    
echo 
"<td>";

echo 
$registro['titulos'];
echo 
"</td>";
echo 
"<td>";
echo 
$registro['parrafos'];
echo 
"<td width='50'><input type='radio' value='onn'  name=".$registro['id'].">on</td><td width='50'><input type='radio' value='off' name=".$registro['id'].">off</td>";

}
$registro mysql_fetch_array($resultado);

echo 
"<br/><input type='submit' name='ace' value='Aceptar'>";

?>


</td></tr></table> 
<?php if (isset($_POST['ace'])){
 
mifuncion();


function 
mifuncion(){
echo 
"si se presiono";

for(
$i=1$i<$rows$i++){
if (isset(
$_POST[$i])){


echo 
"tambien se preciono el radio con name";
echo 
$i;
echo 
"<br/>";
}}}
?>
</form>
<a href="archiprin.php">agree more</a> 
</body>
</html>
  #9 (permalink)  
Antiguo 08/02/2011, 13:37
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: chek no anda

Entonces si el problema es con el $row como me imaginaba, puedes hacer dos cosas:
1 al tomar el valor del row por primera vez lo guardas en una variable de sesion ($_SESSION["id"]=$row["id"]), luego al hacer el for tomas en cuenta el valor de la variable de sesion.
2. Antes de hacer el for vuelves a leer el valor del row.

No obstante no encuentro realmente justificación a que leas de esa forma, quizá si explicas a grandes rasgos qué quieres poner en el formulario y cómo lo quieres leer...
  #10 (permalink)  
Antiguo 08/02/2011, 13:46
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: chek no anda

lo que quiero hacer en el formulario es que al hacer click en alguno de los radio,(por ejemplo en el primero) quiero que a ese valor en la base de datos en el campo 'onn' se le ponga un 1...
  #11 (permalink)  
Antiguo 08/02/2011, 14:07
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: chek no anda

Ok, entonces estás generando el formulario de manera "dinámica", por tanto no sabes cuántos registros vas a insertar, ¿correcto? pues si, como habia mencionado anteriormente, o guardas el valor de cuantos registros son (por cierto, ahí sería guardar el valor de mysql_num_rows() y no el valor de un solo row) en una variable de sesión o lo vuelves a leer antes de recorrer los valores del formulario.
  #12 (permalink)  
Antiguo 08/02/2011, 14:14
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: chek no anda

Si es eso lo que quiero hacer pero no entiedo lo que me quisiste decir despues

saludos..
  #13 (permalink)  
Antiguo 08/02/2011, 14:34
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: chek no anda

Genio ya te entendi, ahora me surgio otro problema.. viste que tengo 2 radio en el formulario dinamico? uno se llama 'on' y el otro 'off'.. el problema es que al tener la misma variable por lo tanto van a tener los mismos name los radio, como puedo hacer para agregarle una 'a' al primer radio y una 'b' al final del nombre de la variable algo asi
Código PHP:

$vario 
$registro['id'];
$varioo $vario 'a';

echo 
"<td width='50'><input type='radio' value='onn'  name=".$varioo.">on</td><td width='50'><input type='radio' value='off' name=".$registro['id'].">off</td>"
  #14 (permalink)  
Antiguo 08/02/2011, 14:38
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: chek no anda

El mismo nombre de los radio para los dos valores posibles (on y off) ayuda a saber en qué valor quedó el radio una vez que lo recibes, por lo que no es necesario nombrarlos diferentes.
  #15 (permalink)  
Antiguo 08/02/2011, 20:56
Avatar de juan_14nob  
Fecha de Ingreso: abril-2010
Mensajes: 552
Antigüedad: 14 años
Puntos: 6
Respuesta: chek no anda

Cita:
Iniciado por ocp001a Ver Mensaje
El mismo nombre de los radio para los dos valores posibles (on y off) ayuda a saber en qué valor quedó el radio una vez que lo recibes, por lo que no es necesario nombrarlos diferentes.
como? no te entiendo...

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 23:02.