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

Passar uma váriavel vinda por POST em form while


sedeparis

Pergunta

Olá povo.

Preciso de uma ajuda, pois sou iniciante.

Estou vindo de um formulário onde passa as seguintes variaveis:

$requis=$_POST['requis'];
$processo=$_POST['processo'];
$fornecedor=$_POST['fornecedor'];
$data= $_POST['data'];

Em seguida faço uma seleção usando duas das variáveis ($fornecedor e $processo) e pretendia passar as outras ($data e $requis) junto com os dados retornados para enviar por form para através de foreach gravar os dados no banco, como em echo '<p><input type="hidden" name="data[]" value="$data"> '."\n";. Tentei de várias formas passar o valor dessas varáveis pelo form -salvadd- sem sucesso.

Pergunta como eu faria para passar esse dados para por foreach gravar essas variáveis no banco mysql usando essa estutura ( echo '<p><input type="hidden" name="data[]" value="$data"> '."\n";) ?

 

ENVIA DADOS

<?php
 $sql = ("SELECT * FROM caditem WHERE processo ='$processo' AND (fornecedor LIKE '%$fornecedor%') AND quantix<>0");
 $res = @mysql_query($sql) or die(mysql_error());
  if (mysql_num_rows($res) == 0 ) {
  echo "";}
  else {
  if (mysql_num_rows($res) > 0 ) {
  echo '<form name="salvadd" method="post" action="exesalvaemp.php">';
 
  while ( $row = mysql_fetch_assoc($res) )
      {
  echo '<p> <input type="hidden" size="5" name="nitem['.$row["iditem"].']" value="'.$row["nitem"].'"> <br /></p>'."\n";
  echo ' <p><input type="hidden" size="5" name="ditem['.$row["iditem"].']" value="'.$row["ditem"].'"> <br /></p>'."\n";
  echo '<p><input type="hidden" size="5" name="un['.$row["iditem"].']" value="'.$row["un"].'"> <br /></p>'."\n";
  echo '<p><input type="hidden" size="5" name="ed['.$row["iditem"].']" value="'.$row["ed"].'"> <br /></p>'."\n";
  echo '<p><input type="hidden" size="2" name="quantix['.$row["iditem"].']" value="'.$row["quantix"].'"><br /></p>'."\n";
  echo '<p><input type="hidden" size="5" name="valori['.$row["iditem"].']" value="'.$row["valori"].'"><br /></p>'."\n";
  echo ' <p><input type="hidden" size="5" name="valor['.$row["iditem"].']" value="'.$row["valor"].'"><br /></p>'."\n";
  echo '<p><input type="hidden" name="iditem[]" value="'.$row["iditem"].'"> '."\n";
  echo '<p><input type="hidden" name="data[]" value="$data"> '."\n";
  }

  echo '<input type="submit" name="submit" value="Salvar"/>';
  echo '</form>';
  }
  }
?>

 

RECEBE DADOS DO FORM E GRAVA NO BD EM MYSQL

<?php
if ( isset($_POST["submit"]))    {
echo '<p><pre></p>';
        print_r($_POST);
        echo '<p></pre></p>';
        foreach($_POST["iditem"] AS $iditem){
            echo '<p>iditem is '. $iditem . '<br /></p>';
            echo '<p>nitem is ' . $_POST["nitem"][$iditem]."</p><br />";
            echo '<p>ditem is ' . $_POST["ditem"][$iditem]."</p><br />";
            echo '<p>un is ' . $_POST["un"][$iditem]."</p><br />";
             echo '<p>valor is ' . $_POST["valor"][$iditem]."</p><br />";
            echo '<p>data is ' . $_POST["data"][$iditem]."</p><br />";
             echo '<p>ed is ' . $_POST["ed"][$iditem]."</p><br />";
             echo '<p>valori is ' . $_POST["valori"][$iditem]."</p><br />";
              echo '<p>quantix is ' . $_POST["quantix"][$iditem]."</p><br />";
               echo '<p>requis is ' . $_POST["requis"][$iditem]."</p><br />";
            
             $nitem = mysql_real_escape_string($_POST["nitem"][$iditem]);
             $ditem = mysql_real_escape_string($_POST["ditem"][$iditem]);
             $un = mysql_real_escape_string($_POST["un"][$iditem]);
             $valor= mysql_real_escape_string($_POST["valor"][$iditem]);
             $data = mysql_real_escape_string($_POST["data"][$iditem]);
             $ed = mysql_real_escape_string($_POST["ed"][$iditem]);
             $valori = mysql_real_escape_string($_POST["valori"][$iditem]);
             $quantix = mysql_real_escape_string($_POST["quantix"][$iditem]);
              $requis = mysql_real_escape_string($_POST["requis"][$iditem]);
            
    $insert = ("INSERT INTO cdempenhos (requis, iditem, nitem, ditem, un, quantix, valor, valori, data, ed) VALUES ('$requis', '$iditem', '$nitem', '$ditem', '$un',  '$quantix', '$valor', '$valori', '$data', '$ed')");
    
    mysql_query($insert)or die (mysql_error());
    echo 'Itens gravados com sucesso';
    }
    }
    echo "<meta HTTP-EQUIV='refresh' CONTENT='2;URL=painel.php'>";
    ?>
       

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá!

Não entendi onde a variável $data foi criada!

 echo '<input type="hidden" name="data[]" value="$data"> '."\n"; 

 

Entre aspas simples não vai funcionar! Tente assim:

 echo "<input type='hidden' name='data[]' value='$data'>"; 

 

Ainda assim, não vi onde $data nasce.

 

Segue algumas observações:

Em php só use aspas duplas se tiver variável php dentro, logo aqui, deveriam ser somente aspas simples, veja:

echo '<p>iditem is ' . $iditem . '<br></p>
        <p>nitem is ' . $_POST['nitem'][$iditem] . '</p><br>
        <p>ditem is ' . $_POST['ditem'][$iditem] . '</p><br>
        <p>un is ' . $_POST['un'][$iditem] . '</p><br>
        <p>valor is ' . $_POST['valor'][$iditem] . '</p><br>
        <p>data is ' . $_POST['data'][$iditem] . '</p><br>
        <p>ed is ' . $_POST['ed'][$iditem] . '</p><br>";
        <p>valori is ' . $_POST['valori'][$iditem] . '</p><br>
        <p>quantix is ' . $_POST['quantix'][$iditem] . '</p><br>
        <p>requis is ' . $_POST['requis'][$iditem] . '</p><br>';

        $nitem = mysql_real_escape_string($_POST['nitem'][$iditem]);
        $ditem = mysql_real_escape_string($_POST['ditem'][$iditem]);
        $un = mysql_real_escape_string($_POST['un'][$iditem]);
        $valor = mysql_real_escape_string($_POST['valor'][$iditem]);
        $data = mysql_real_escape_string($_POST['data'][$iditem]);
        $ed = mysql_real_escape_string($_POST['ed'][$iditem]);
        $valori = mysql_real_escape_string($_POST['valori'][$iditem]);
        $quantix = mysql_real_escape_string($_POST['quantix'][$iditem]);
        $requis = mysql_real_escape_string($_POST['requis'][$iditem]);

 

Cada vez que você executa um echo, um "processo" é chamado no php, use apenas um, como no exemplo acima

Não existe <br />, apenas <br>  veja em: http://www.w3schools.com/tags/tag_br.asp

Há mais de 3 anos que o "fabricante" do php recomenda fortemente que não se use mais as extensões mysql_*

Inclusive foi totalmente removida do php7, veja:

mysql_.jpg.ccf8954f5caa53ddabe914d19c631

 

Editado por wash
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...