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

Dificuldade para gerar Update com dados FORM


Ippo

Pergunta

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>

Editado por Ippo
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 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,5k
×
×
  • Criar Novo...