Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2014, 23:03
EdyArgueta
 
Fecha de Ingreso: abril-2014
Mensajes: 51
Antigüedad: 10 años, 1 mes
Puntos: 1
Pregunta Checkbox valor desmarcado

Hola a todos es estado buscando una manera de poder darle valor a un checkbox desmarcado o por lo menos en php encontrar la manera de ingresar ese checkbox que no existe :(

la idea es la siguiente

Código HTML:
<form action="Untitled-1.php" method="POST">

<input type="checkbox" name="ch[]" value="no" checked="checked" >
<input type="text" name="n[]" size="12" value="edy">
<input type="text" name="id[]" size="12" value="001">

<br>

<input type="checkbox" name="ch[]" value="si">
<input type="text" name="n[]" size="12" value="Mely">
<input type="text" name="id[]" size="12" value="002">

<br>

<input type="checkbox" name="ch[]" value="si">
<input type="text" name="n[]" size="12" value="Kevin">
<input type="text" name="id[]" size="12" value="">

<br>

<input type="checkbox" name="ch[]" value="si">
<input type="text" name="n[]" size="12" value="Bryan">
<input type="text" name="id[]" size="12" value="004">


<input type="submit" />
</form> 
pero el problema es que cuando no marco uno me dice error o si logro que no tire el error desordena la cadena

Código PHP:
if(!empty($_POST['ch'])) {
    foreach(
$_POST['ch'] as $indice => $valorm){

    if(isset(
$_POST['ch'])){ 
        
$nombre $_POST['n'][$indice]; 
        
$id $_POST['id'][$indice]; 
    }
    
    if (
$valorm=="si"){
        if(empty(
$id)){
            echo
"Guardamos: $nombre , estado: $valorm con id: $id<br />";
        }else{
            echo
"Actualizamos: $nombre , estado: $valorm con id: $id<br />";
        }
    }}
}

foreach(
$_POST['n'] as $indice => $valorm2){
    
$id $_POST['id'][$indice]; 
    
ini_set('display_errors','off');
    if(empty(
$valorm2)) {
        echo
"Guardamos sin check: $valorm2 con id: $id <br />";
        
}} 
El resultado con todos los checkbox activos es el siguiente :

Código Resultado:
Ver original
  1. Actualizamos: Mely , estado: si con id: 002
  2. Guardamos: Kevin , estado: si con id:
  3. Actualizamos: Bryan , estado: si con id: 004
un buen resultado pero si por ejemplo desmarco kevin pasa lo siguiente

Código Resultado:
Ver original
  1. Actualizamos: Mely , estado: si con id: 002
  2. Guardamos: Kevin , estado: si con id:
aparece Kevin con Si (checkbox) de Bryan siempre que un checkbox no esta toma su lular el siguiente.

Les agradecere su ayuda ya que no encuentro nada que me de una buena solucion.

Nota.
Incluso si coloco disable a un checkbox no es tomado en cuenta tampoco