Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Foreach + campo text


Anderson Gouveia

Question

Pessoal, boa tarde!

Por favor me ajudem.

Postei a imagem para ficar mais claro o entendimento.

A tabela da esquerda é alimentada pelo resultado de uma query, a coluna "Inserir?" é uma campo checkbox[] + um campo text.

Na tabela da direita irão aparecer somente os produtos selecionados pelo cliente (foreach no campo checkboc[]) com a quantidade que for inserida no campo text (aqui está minha dúvida) , o preço será o valor do preço unitário X a quantidade inserida no campo text, para que depois eu possa guardar toda essa segunda tabela no BD.

Fazer somente os produtos selecionados aparecerem na outra tabela foi moleza, fiz um foreach no campo checkbox que consulta novamente no BD e retorna os valores, porém presico "interagir" cada um dos checkbox selecionados com o seu campo text, e não estou sabendo fazer isso.

Aqui está o código da página e uma imagem pra ficar mais claro o entendimento:

Desde já agradeço a tenção de todos.

Anderson

<html>
<body>
<form method="post" action="<? echo $_SELF_PHP; ?>">
<div id="conteudoEsq">
<center>PRODUTOS DISPONÍVEIS<BR></center>
<div class="tabContainer" id="lista">
    <table>
        <thead>
            <tr>
                <th class="tabela-coluna0"><span>Cod</span></th>
                <th class="tabela-coluna1"><span>Qtde</span></th>
                <th class="tabela-coluna2"><span>Produto</span></th>
                <th class="tabela-coluna3"><span>Preço</span></th>
                <th class="tabela-coluna4"><span>Incluir?</span></th>
            </tr>
        </thead>
    </table>
    <div class="scrollContainer">
        <table border="0">
            <tbody>

<?
require_once('conecta.php');
$consulta = mysql_query("select * from produto order by produto");
while ($l = mysql_fetch_assoc($consulta)){

echo "
                <tr>
                    <td class='tabela-coluna0'><span>$l[cod]</span></td>
                    <td class='tabela-coluna1'><span>$l[qtde]</span></td>
                    <td class='tabela-coluna2'><span>$l[produto]</span></td>
                    <td class='tabela-coluna3'><span>$l[preço]</span></td>
                    <td class='tabela-coluna4'><span><input type='checkbox' name='check[]' value='$l[cod]'>
                    <input type='text' name='q[]' size='3'></span></td>
                </tr>";
                }
echo " </tbody>
        </table>
</div>
</div>
<BR>
<center><input type='submit' name='gerar' value='Gerar Orçamento'></center>
 </form>
</div>";


echo " <div id='colEsq'>
     <div id='sepEsqcolCentral'>
   <div id='colCentral'>
<table width='400'>
<tr>
<th>Qtde</th>
<th>Produto</th>
<th>Preço</th>
</tr>
";
$total = 0;
if (isset($_POST[check])){
foreach($_POST[check] as $check) {
$consulta = mysql_query("select * from produto where cod='$check' order by produto");
while ($l = mysql_fetch_assoc($consulta)){
echo "
<tr>
<td>qtde_escolhida</td>
<td>$l[produto]</td>
<td>$l[preço]</td>
</tr>";

$total = $total + $l[preço];


}
}
echo"</table><BR>";
echo"Total = $total";
}
   

echo "</div>
   </div>
</div>";
?>
</BODY>
</HTML>

oramento11vw0.th.jpg

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Modifique isso:

<td class='tabela-coluna4'><span><input type='checkbox' name='check[]' value='$l[cod]'>
                    <input type='text' name='q[]' size='3'></span></td>
Para isso
<td class='tabela-coluna4'><span><input type='checkbox' name='check[$l]' value='$l'>
                    <input type='text' name='q[$l]' size='3'></span></td>
E isso:
foreach($_POST[check] as $check) {
Para isso:
foreach($_POST[check] as $check) {
$do_form = $_POST['q'][$check];

Ai a variável $do_form vai conter o valor que estiver ao lado do checkbox selecionado.

Link to comment
Share on other sites

  • 0

Serra, fiz como você me orientou:

no form deixei assim:

<td class='tabela-coluna4'><span><input type='checkbox' name='check[$l]' value='$l'>
                    <input type='text' name='q[$l]' size='3'></span></td>
E na segunda parte ficou assim:
if (isset($_POST[check])){
foreach($_POST[check] as $check) {
$do_form = $_POST['q'][$check];
$consulta = mysql_query("select * from produto where cod='$check' order by produto");
while ($l = mysql_fetch_assoc($consulta)){
echo "
<tr>
<td>$do_form</td>
<td>$l[produto]</td>
<td>$l[preço]</td>
</tr>";
Porém não está retornando nada. Como deve ficar o objeto de busca na segunda consulta neste caso? Isolei o código para neutralizar a possibilidade de erro na consulta
if (isset($_POST[check])){
foreach($_POST[check] as $check) {
$do_form = $_POST['q'][$check];
echo $do_form;

Mas também não me retornou nada.

Abraços

Link to comment
Share on other sites

  • 0

AHH GAROTO!!!

Serra, você é meu herói cara!!! BRIGADUUUUU!!!!

Ficou show, era isso mesmo que eu queria!!!

Ficou assim

<td class='tabela-coluna4'><span><input type='checkbox' name='check[$l[cod]]' value='$l[cod]'>
                    <input type='text' name='q[$l[cod]]' size='3'></span></td>
E no foreach assim:
if (isset($_POST[check])){
foreach($_POST[check] as $check) {
$qd= $_POST[q][$check];
Show de bola Garoto!!!! Só mais uma perguntinha: Isso só funciona com checkbox + text ou também dá certo em text+text?? E mais uma vez, muito obrigado cara.
AHH GAROTO!!! Serra, você é meu herói cara!!! BRIGADUUUUU!!!! Ficou show, era isso mesmo que eu queria!!! Ficou assim
<td class='tabela-coluna4'><span><input type='checkbox' name='check[$l[cod]]' value='$l[cod]'>
                    <input type='text' name='q[$l[cod]]' size='3'></span></td>
E no foreach assim:
if (isset($_POST[check])){
foreach($_POST[check] as $check) {
$qd= $_POST[q][$check];

Show de bola Garoto!!!!

Só mais uma perguntinha:

Isso só funciona com checkbox + text ou também dá certo em text+text??

E mais uma vez, muito obrigado cara.

HEHE,

Já vi que dá certo também, era meu teste que tava errado.

Valeu!!!!!!

E desculpe pela "amolação".

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...