Jump to content
Fórum Script Brasil
  • 0

Dificuldade para gerar Update com dados FORM


Ippo

Question

Após pesquiser um bocado ainda não consegui solução e vou compartilhar o mesmo na esperança dreceber uma ajuda dos amigos.

Vamos ao problema:

Temos um manifesto com um numero ilimitado de conhecimentos, nestes conhecimentos podemos ter um número ilimitado de notas e cada uma destas notas tem um status de entrega como: ENTREGUE ou MERC SINISTRADA.

O objetivo é adicionar este estados individualmente a cada nota ou todas as notas deste conhcimento de uma vez, caso seja a vontade do usuário.

Tenho um select que olha todos manifestos deste motorista e então lista as notas que ainda não receberam um codigo_cocorrencia utilizando o primeiro while:

79396

79406

Tenho uma tabela com a ocorrencias possiveis de cada nota:

Codigo_ocorrencia Descricao_ocorrencia

01 ENTEGUE

02 END não LOCALIZADO

03 MERC SINISTRADA

Para cada nota criei uma combobox consultando a tabela de ocorrencias utilizando um segundo while

// Neste caso $nota = 79396

79396 <select size=1 name='79396' onChange='location = options[selectedIndex].value'>

<option value=01>ENTREGUE</option>

<option value=02>END não LOCALIZADO</option>

<option value=03>MERC SINISTRADA</option>

// Neste caso $nota= 79396

79396 <select size=1 name='79396' onChange='location = options[selectedIndex].value'>

<option value=01>ENTREGUE</option>

<option value=02>END não LOCALIZADO</option>

<option value=03>MERC SINISTRADA</option>

E aparecem todas as notas que ainda não tiveram preenchidas o campo codigo_ocorrencia desta nota, isso esta funcionando até o momento.

Agora eu tenho este formulario e preciso dar update na tabela de notas no campo codigo_ocorrencia onde codigo da nota é o nome do campo atual e codigo_ocorrencia é o valor do campo atual e a quantidade destes campos é dinamica nesta tabela.

Por padrão a opção 01 (ENTREGUE) fica selecionada em todas as notas, quando o usuário desejar mudar o codigo_ocorrencia para 03 (MERC SINISTRADA) então o form executa o post que pode executar o update exclusivamente desta nota, porém também preciso executar a baixa de todas as notas de uma vez com o status atual (padrão 01 ENTREGUE) e justamente por isso acredito que o nome do campo que vai receber o valor do codigo_ocorrencia não pode ser fixo ou todas as notas receberia o mesmo status e então utilizei o codigo da nota para indetificar os mesmo individualente.

Ainda não criei o arquivo para pegar o resultado deste form e fazer o update porque ainda não sei como e o qu enviar para ele... aceito sugestões, iclusive outras formas de aordar o problema!

baixar.php

<HTML>
<HEAD>
<TITLE>Baixar Notas</TITLE>
</HEAD>
<BODY>
<form action="??????" method="POST"> 
<?
$notas = pg_query($dbcon, "select manifesto_entrega.nf,manifesto_entrega.row_chave from manifesto_entrega join det_manifesto on manifesto_entrega.row_chave_det_manifesto = det_manifesto.row_chave where manifesto_entrega.ocorrencia = '' and cab_manifesto.codmot = '$motorista'  order by manifesto_entrega.nf asc");

while ($rownota = pg_fetch_row($notas)) {
  $inicio="$rownota[0] <select size=1 name='$rownota[0]' onChange='location = options[selectedIndex].value'>";
  $final="</select><br/>\n";
    $motivo = pg_query($dbcon, "select codigo, desc_celular FROM ocorrencia_entrega WHERE msg_celular = true order by codigo asc" );
  }
  echo $inicio;
    while ($rowmotivo = pg_fetch_row($motivo)) {
      echo "<option value=$rowmotivo[0]>$rowmotivo[1]</option>\n";
    }
  echo $final;
}
?>
<br><input type ="submit" value ="Baixar Notas"></form>
</BODY>
</HTML>
Source do codigo HTML gerado:
<Form>
<HTML>
<HEAD>
<TITLE>Baixar Notas</TITLE>
</HEAD>
<BODY>
<form action="??????" method="POST"> 
79396 <select size=1 name='79396' onChange='location = options[selectedIndex].value'><option value=01>ENTREGUE</option>
<option value=02>END não LOCALIZADO</option>
<option value=03>MERC SINISTRADA</option>
</select><br/>
79406 <select size=1 name='79406' onChange='location = options[selectedIndex].value'><option value=01>ENTREGUE</option>
<option value=02>END não LOCALIZADO</option>
<option value=03>MERC SINISTRADA</option>
</select><br/>
<br><input type ="submit" value ="Baixar Notas"></form>
</BODY>
</HTML>

Edited by Ippo
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Consegui resolver este prolema da seguinte forma:

$motorista = pg_query($dbcon, "SELECT codigo, nome FROM motoristas WHERE codigo=$usuario");
while ($row = pg_fetch_row($motorista)) {
  $motorista=$row[0];
  echo "MOTORISTA: <h3>$row[1]</h3>\n"; 
}
  $consulta = pg_query($dbcon, "select det_manifesto.conhecimento from manifesto_entrega join det_manifesto on manifesto_entrega.row_chave_det_manifesto = det_manifesto.row_chave where manifesto_entrega.ocorrencia = '' and cab_manifesto.codmot = '$motorista' group by det_manifesto.conhecimento order by det_manifesto.conhecimento asc" );

  echo "<Form action=\"baixa.php\">";

 while ($row1 = pg_fetch_row($consulta)) {
    echo '<a href="baixa.php?ctrc='.$row1[0].'&codmot='.$motorista.'">'.$row1[0].'</a><br></font>'; 
 }  ?>
<br></Form><br><a href="sair.php">SAIR</a>
</div>
</body>
</html>

Na primeira pagina faço links para a segunda que recebe o numero do ctrc e o codigo do motorista que então faz o próximo form com as notas integrantes corretamente.

A soluão foi dividir o proceso em duas etapas e está funcionando perfeitamete no momento.

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
      152.2k
    • Total Posts
      652k
×
×
  • Create New...