Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Foreach + campo text


Anderson Gouveia

Pergunta

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 para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...