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">
<p 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>
<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: {$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>
<p 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