manolegal 12 Denunciar post Postado Março 10, 2012 Tenho o seguinte código: <table width="80%" border="1" cellspacing="0" cellpadding="0" align="center" id="detalhes"> <tr bgcolor="#000039"> <td align="center" colspan="6"><strong><font color="#FFFFFF">Detalhes</font></strong></td> </tr> <tr> <td width="10%" class="branco"></td> <td width="25%">Tipo Dcto Fiscal</td> <td width="15%">Numero Dcto Fiscal</td> <td width="20%">Valor Dcto Fiscal</td> <td width="20%">Data Dcto Fiscal</td> <td width="10%">Fornecedor</td> </tr> <tr> <td><center>1</center></td> <td><select name="tipo_dcto_fiscal[]" id="tipo_dcto_fiscal[]" onfocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')" onkeypress="return handleEnter(this, event)"> <option value="">-- Selecionar --</option> <?php $Sql = "SELECT ... FROM ...."; ?> <option value="<?php echo $id_tipo_dcto;?>"> <?php if($id_tipo_dcto == $_POST['tipo_dcto_fiscal']){ echo "selected"; } ?> <?php echo $tipo_dcto; ?> </option> <?php } ?> </select> </td> <td> <input name="numero_dcto_fiscal[]" id="numero_dcto_fiscal[]" type="text" size="15" maxlength="12"> </td> <td> <input name="valor_dcto_fiscal[]" id="valor_dcto_fiscal[]" type="text" size="12" maxlength="10"> </td> <td> <input name="data_dcto_fiscal[]" id="data_dcto_fiscal[]" type="text" size="12" maxlength="10" onkeypress="return handleEnter(this, event) && formatar_mascara(this, '##/##/####')" onfocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')" onKeyUp = "this.value=formateadata(this.value);"> </td> <td><select name="empresa_id[]" id="empresa_id[]" onfocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')" onkeypress="return handleEnter(this, event)"> <option value="">-- Selecionar --</option> <?php $Sql = "SELECT ... FROM ... "; $Resultado = executa($Sql); ?> <option value="<?php echo $id_empresa;?>"> <?php if($id_empresa == $_POST['nome']){ echo "selected"; } ?> <?php echo $empresa; ?> </option> <?php } ?> </select> </td> </tr> </table> Estou com dificuldades para validar os campos. Se defino o nome dos campos normalmente sem especificar que é array "numero_dcto_fiscal" consigo validar todos os campos, mas consigo inserir apenas 01 linha de dados. Se defino o nome do campo especificando que é array "numero_dcto_fiscal[]" não consigo validar corretamente. Caso algum campo de uma linha fique em branco, o código tem sequencia e ocorrem problemas no momento de inserir os dados na tabela. Gostaria da ajuda dos amigos. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Março 10, 2012 E a parte da validação está onde? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 10, 2012 A validação: $tipo_dcto_fiscal = $_POST ["tipo_dcto_fiscal"]; $numero_dcto_fiscal = $_POST ["numero_dcto_fiscal"]; $valor_dcto_fiscal = $_POST ["valor_dcto_fiscal"]; $valor_dcto_fiscal_formato = ereg_replace (",", ".", $valor_dcto_fiscal); $data_dcto_fiscal = $_POST ["data_dcto_fiscal"]; $empresa_id = $_POST ["empresa_id"]; if (empty($tipo_dcto_fiscal)){ $erro=1; echo "<center>Informe o Tipo de Documento Fiscal!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; exit; } if (empty($numero_dcto_fiscal)){ $erro=1; echo "<center>Informe o Numero do Documento Fiscal!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; exit; } if (empty($valor_dcto_fiscal)){ $erro=1; echo "<center>Informe o Valor do Documento Fiscal!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; exit; } if (empty($data_dcto_fiscal)){ $erro=1; echo "<center>Informe a Data do Documento Fiscal!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; exit; } if (empty($empresa_id)){ $erro=1; echo "<center>Informe o Fornecedor!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; exit; } Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Março 10, 2012 de um print_r nesse array primeira para ver se eles estão corretos. depois percorra os arrays: foreach($tipo_dcto_fiscal as $item){ if (empty($item)){ $erro=1; echo "<center>Informe o Tipo de Documento Fiscal!</center>"; echo "<center> <input type='button' value='Voltar' name='btnVoltar'Onclick='javascript:history.go(-1)'></center>"; exit; } } Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 16, 2012 Beleza. Consegui resolver a questão da validação não permitindo ficar algum campo em branco. Agora estou validando os dados na mesma página, e estou tendo dificuldades para manter os dados digitados/selecionados nos campos, quando acontece algum erro. Se eu selecionar por exemplo o campo "$tipo_dcto_fiscal" e deixar os demais campos em branco, ao submeter o formulário mostra a mensagem de erro, mas o campo $tipo_dcto_fiscal não volta selecionado. Tentei o seguinte código: <?php if ($_SERVER['REQUEST_METHOD'] == "POST"){ $tipo_dcto_fiscal = $_POST ["tipo_dcto_fiscal"]; $numero_dcto_fiscal = $_POST ["numero_dcto_fiscal"]; foreach($numero_dcto_fiscal as $item){ if (empty($item)){ $erro=1; $msg_erro = "<center><b><font color=#FF0000>Verifique o campo Número Documento Fiscal!</font></b></center>"; } } foreach($tipo_dcto_fiscal as $item){ if (empty($item)){ $erro=1; $msg_erro = "<center><b><font color=#FF0000>Verifique o campo Tipo Documento Fiscal!</font></b></center>"; } } } ?> <td><select name="tipo_dcto_fiscal[]" id="tipo_dcto_fiscal[]" onfocus="mudacor(this,'yellow')" onblur="mudacor(this,'white')" onkeypress="return handleEnter(this, event)"> <option value="">-- Selecionar --</option> <?php $Sql = "SELECT ... FROM ...."; $Resultado = executa($Sql); while ($linha = pg_fetch_array($Resultado)){ $id_tipo_dcto = $linha["id_tipo_dcto_fiscal"]; $tipo_dcto = $linha["tipo_dcto_fiscal"]; if ($_POST ["tipo_dcto_fiscal[]"] == $id_tipo_dcto) echo "<option value='$id_tipo_dcto' selected = 'selected'>$tipo_dcto</option>"; else echo "<option value='$id_tipo_dcto'>$tipo_dcto</option>"; } ?> </select></td> Mas não está retornando o dado selecionado. Alguém teria alguma dica? Já procurei em vários tópicos mas não consegui resolver. Compartilhar este post Link para o post Compartilhar em outros sites
Fabio Pratta 14 Denunciar post Postado Março 16, 2012 nessa linha if ($_POST ["tipo_dcto_fiscal[]"] == $id_tipo_dcto) nao seria if ($_POST["tipo_dcto_fiscal"] == $id_tipo_dcto) Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 16, 2012 Fabio Alterei mas não funcionou Compartilhar este post Link para o post Compartilhar em outros sites
Fabio Pratta 14 Denunciar post Postado Março 17, 2012 bom vi rapidamente aqui pq você esta usando array nos inputs?/ ex>> <input name="doc_tipo[]" /> geralmente você poderia fazer assim ex. form. contato <input name="contato[nome]" /> <input name="contato[email]" /> <input name="contato[site]" /> na verificação $contato = $_REQUEST['contato']; if (empty($contato[nome])){ $erro=1; echo "<center>nome obrigatorio!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; exit; } no proprio form você coloca assim <input name="contato[nome]" value="<?=$contato[nome]?>" /> acho que deu pra você entender neh.. abs Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Março 26, 2012 Estou usando array pois vou digitar mais de um dado em cada campo. Imagino q da forma q estou fazendo deva estar correto também. Caso não esteja, por favor me corrijam. if ($_SERVER['REQUEST_METHOD'] == "POST"){ foreach($tipo_dcto_fiscal as $item){ if (empty($item)){ $erro=1; $msg_erro = "<center><b><font color=#FF0000>Verifique o campo Tipo Documento Fiscal!</font></b></center>"; } } Estou tendo grande dificuldades para manter os dados digitados/selecionados nos campos, quando acontece algum erro. Alguém teria alguma dica? Compartilhar este post Link para o post Compartilhar em outros sites
manolegal 12 Denunciar post Postado Abril 24, 2012 Alterei o código, if ($_SERVER['REQUEST_METHOD'] == "POST"){ if (!empty($tipo_dcto_fiscal)) { // Se array nao esta vazio foreach($tipo_dcto_fiscal as $item){ if (empty($item)){ $erro=1; $msg_erro = "<center><b><font color=#FF0000>Verifique o campo Tipo Documento Fiscal!</font></b></center>"; } } } else { // Caso array esteja vazio $erro=1; $msg_erro = "<center><b><font color=#FF0000>Verifique Detalhes do Auxilio!</font></b></center>"; } mas continuo com problemas para manter os dados já digitados, quando acontece algum problema. Alguém teria alguma dica? Compartilhar este post Link para o post Compartilhar em outros sites