Jump to content
Fórum Script Brasil
  • 0

Passar uma váriavel vinda por POST em form while


sedeparis
 Share

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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

 

Edited by wash
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.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...