Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/07/2014, 08:03
Avatar de shadowwolfone
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.