Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Asociar un checkbox a una fila en una tabla dinamica

Estas en el tema de Asociar un checkbox a una fila en una tabla dinamica en el foro de PHP en Foros del Web. Hola a todos, como estan. Por favor si alguien me pudiera ayudar en este problema: Tengo un archivo php ActaController.php en el cual tengo 2 ...
  #1 (permalink)  
Antiguo 29/07/2014, 08:03
Avatar de shadowwolfone  
Fecha de Ingreso: abril-2009
Ubicación: Amaguaña
Mensajes: 40
Antigüedad: 15 años
Puntos: 1
Asociar un checkbox a una fila en una tabla dinamica

Hola a todos, como estan.

Por favor si alguien me pudiera ayudar en este problema:

Tengo un archivo php ActaController.php en el cual tengo 2 querys es primero me muestra una consulta al momento de escribir una variable solicitada.

Código PHP:
$refer=$_POST['referencia'];
        
//Tools::getValue('email');
        
$productos="SELECT
                    b.id_cart,
                    c.name AS nombre,
                    b.quantity AS cantidad,
                    d.price,
                    d.price * b.quantity AS Total,
                    a.reference
                    FROM ps_orders AS a, ps_cart_product AS b, ps_product_lang AS c, ps_product AS d
                    WHERE a.id_cart = b.id_cart
                    AND b.id_product = c.id_product
                    AND b.id_product = d.id_product
                    AND a.reference = '$refer'
                    AND c.id_lang = 2"
;
                    
        
$this->context->smarty->assign('lista'Db::getInstance()->executeS($productos));
        
$this->context->smarty->assign('envio'$refer);
        
$this->setTemplate(_PS_THEME_DIR_.'acta.tpl'); 
Estos datos me muestra correctamente en un archivo acta.tpl de la siguiente forma:

Código PHP:
<form action="{$link->getPageLink('acta', true)|escape:'html'}" method="post" id="login_form" class="std">

            <
div class="form_content clearfix">
                <
class="text">
                    <
label for="email">{l s='Referencia del Pedido'}</label>
                    <
span><input type="text" id="email" name="referencia" value="{if isset($smarty.post.referencia)}{$smarty.post.referencia}{/if}" class="account_input" /></span>
                </
p>
                <
class="submit">
                    <
input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Consulta'}" />
                </
p>
                </
div>

</
form
Esta primera parte es donde debo escribir la referencia para la consulta.

Código PHP:
<form action="{$link->getPageLink('acta', true)|escape:'html'}" method="post" class="std">
   <
tr>
   <
td>REFERENCIA DEL PEDIDO:&nbsp;{$envio}</td>
   </
tr>
   <
table class="std">
           <
thead>
            <
tr>
                <
th class="first_item">{l s='Producto'}</th>
                <
th class="item">{l s='Cantidad'}</th>
                <
th class="item">{l s='Total'}</th>
                <
th class="item">{l s='SI'}</th>
                <
th class="item">{l s='NO'}</th>
                <
th class="item">{l s='Observacion'}</th>
            </
tr>
        </
thead>
        <
tbody>
        {foreach 
from=$lista key=key item=row }
            <
tr>
                <
td align="left">{$row['nombre']}</td>
                <
td align="left">{$row['cantidad']}</td>
                <
td align="justify">{$row['Total']}</td>
                <
td><input type="checkbox" name="ent_si[]" value="si"/></td>
                <
td><input type="checkbox" name="ent_no[]" value="no"/></td>
                <
td><textarea name="observacion[]" rows="3" cols="40"></textarea></td>
                <
input name="nombre[]" type="text" value="{$row['nombre']}"/>
                <
input name="cantidad[]" type="hidden" value="{$row['cantidad']}"/>
                <
input name="total[]" type="hidden" value="{$row['Total']}"/>
                <
input name="referen[]" type="text" value="{$envio}" />
                
            </
tr
          {/foreach}
          </
tbody>
  </
table>
    <
class="submit">
       <
input type="submit" id="SubmitLogin" name="SubmitLogin" class="button" value="{l s='Enviar'}" />
    </
p>
</
form
Y esta segunda parte me muestra en una tabla los datos de la consulta.
todo esta en el mismo tpl.

esto me genera una tabla donde en la primera columna esta el nombre del producto, en la segunda y tercera otros valores, en la cuarta tengo un check con si, quinta con no y la sexta en textarea para observación.

El problema radica en que en el check escojo la primera fila en si, la segunda en no y la tercera en si pero meguarda en la base en la primera fila si en el campo si y no en el campo no en la segunda fila si en el campo si y en la tercera fila no guarda nada.

columna1 | columa si | columna no |
producto1 | si | no |
producto2 | si | |
producto3 | | |


Cuando deberia guardarme asi:

columna1 | columa si | columna no |
producto1 | si | |
producto2 | | no |
producto3 | si | |

por favor alguien que me pueda ayudar, los demas campos se guardan bien.

este es el query que utilizo para el insert:

Código PHP:
        $nom_prod=$_POST['nombre'];
        
$cant_prod=$_POST['cantidad'];
        
$tot_com=$_POST['total'];
        
$ent_si=$_POST['ent_si'];
        
$ent_no=$_POST['ent_no'];
        
$obs_ent=$_POST['observacion'];
        
$prod_id='pendiente de sacar';
        
$user=$cookie->id_customer;
        
$refer_ped=$_POST['referen'];        
        
         if (isset(
$_POST['nombre'])){
            for(
$i 0$i<count($nom_prod); $i++){
                
$acta="INSERT INTO ps_acta (producto, ing_si, ing_no, observacion, product_id, user_id, reference, cantidad, total)
                VALUES ('$nom_prod[$i]', '$ent_si[$i]', '$ent_no[$i]', '$obs_ent[$i]', 25, '$user[$i]', '$refer_ped[$i]', '$cant_prod[$i]', '$tot_com[$i]')"
;
                
Db::getInstance()->execute($acta); }
       } else {
        echo 
'aun no guarda nada';
       } 

Por favor alguien que me pueda ayudar en caso de que les sirva de algo esta esta hecha siguiendo el esquema de mvc de prestashop.


Por favooor ayuuddaaa.

De ante mano les agradesco
__________________
En este mundo no existen las casualidades, solo lo inevitable.
  #2 (permalink)  
Antiguo 29/07/2014, 08:10
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Asociar un checkbox a una fila en una tabla dinamica

hola amiguto
vos lo que tenes es un probema de diseño,
es campo ing_si y ing_no
deben ser uno solo por ejemplo ing_si_no con valor TinyInt (1)

y despues modifca esto:

<td><input type="checkbox" name="ent_si[]" value="si"/></td>
<td><input type="checkbox" name="ent_no[]" value="no"/></td>

por esto
<td><input type="checkbox" name="ent_si_no[]" value="1"/> Si</td>
<td><input type="checkbox" name="ent_si_no[]" value="0"/> No</td>

se entiende?
tenes que simplificar informacion
y despues leer html basico pero bien basico como saber armar un radio button
  #3 (permalink)  
Antiguo 29/07/2014, 08:24
Avatar de shadowwolfone  
Fecha de Ingreso: abril-2009
Ubicación: Amaguaña
Mensajes: 40
Antigüedad: 15 años
Puntos: 1
Respuesta: Asociar un checkbox a una fila en una tabla dinamica

Gracias patriarka.

Me funciono perfecto ahora si tengo que avanzar y ver los siguiente jeje.

Te agradesco fuuuuullllll.

Graciassssss
__________________
En este mundo no existen las casualidades, solo lo inevitable.
  #4 (permalink)  
Antiguo 29/07/2014, 08:41
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Asociar un checkbox a una fila en una tabla dinamica

ok, pero prometé que vas a leer el manual de html

Etiquetas: checkbox, controlador, form, insert, mvc, mysql, radio, tpl
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 13:47.