Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Flavio Lima_109756

[Resolvido] Problema com retorno de strings em formulário dinâmic

Recommended Posts

Primeiramente, boa tarde a todos.

 

Meu nome é Flávio sou iniciante em PHP e Javascript e creio que seja a primeira vez que estou postando algo aqui no fórum.

 

Estou desenvolvendo um formulário de cadastro relativamente simples, mas esbarrei num problema que não estou conseguindo resolver relacionado a Javascript.

 

Resumindo: no formulário tem um campo onde o usuário seleciona um item num menu dropdown, diz a quantidade que ele quer, a unidade de estoque do produto e o valor unitário do item. Como o usuário pode querer adicionar vários itens no pedido, eu adicionei um botão que executa uma função javascript que adiciona esses mesmos 4 campos no formulário dentro de uma div que fica dentro da div principal.

 

O código da função é o seguinte:

 

var counter = 1;
var limit = 12;
function addInput(divName){
    if (counter == limit)  {
         alert('Nao eh possível adicionar mais de ' + counter + ' itens por pedido');
    }
    else {
         var newdiv = document.createElement('div');
         newdiv.innerHTML = 'Item ' + (counter + 1) + ":  <select id='item[]' name='item[]'><option>Selecione...</option><?php $query = mysql_query("SELECT `nome_artigo` FROM `jos_artigos` WHERE `nome_artigo` LIKE '%saco%' AND `nome_artigo` not LIKE '%mistura%'");?><?php while($prod = mysql_fetch_array($query)) { ?>'<option value='<?php echo $prod['nome_artigo'] ?>'><?php echo $prod['nome_artigo'] ?></option><?php } ?></select><label for='quant'> Quantidade: </label><input name='quant[]' type='text' id='quant[]' size='5' maxlength='6' /> <label for='unidade'></label><select name='unidade[]' id='unidade[]'><option value='MI'>MI</option><option value='UN'>UN</option><option value='PCT'>PCT</option></select><label for='preco'> Valor: R$ </label><input name='preco[]' type='text' id='preco[]' size='5' maxlength='6' /> ";
         document.getElementById(divName).appendChild(newdiv);
         counter++;
    }
}

 

O problema que estou tendo é que ao submeter o formulário, nenhuma das informações obtidas através dos campos adicionados pelo script é submetida.

Então, como o formulário já tem um item por padrão, esse é submetido, mas os outros itens não são.

 

Pra complementar: nos campos item, quant, un e preco, eu coloquei os '[]' pra que eles sejam interpretados como array, tanto no formulário, como na função. Pois o resultado deles precisariam ser, ex.:

$item = $_POST['item'];
echo $item; // retornaria "array"
foreach ($item as $itens){
echo $itens; // retornaria item1, item2, item3...
}

 

Espero ter sido claro, mas senão, posso melhorar a descrição do problema.

 

Desde já agradeço a ajuda de todos.

 

Segue abaixo o código do formulário e do submit na íntegra:

 

Código do formulário:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pedidos Nalplast</title>
</head>
<body>

<?php
include 'scripts.php';

#inf sobre nome de usuario
defined('_JEXEC') OR die("Restricted access");
$user =& JFactory::getUser();
$userId = $user->get( 'id' );
$userName = $user->get('name');
echo '<input type="hidden" name="id" value="' . $userId . '" />';
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('db') or die(mysql_error());

#inf sobre pedidos
$ultquery = mysql_query("SELECT * FROM `jos_pedidos` ORDER BY `n_pedido` DESC LIMIT 1");
$ultpedid = mysql_fetch_array($ultquery);

#queries
$query = mysql_query("SELECT `nome_artigo` FROM `jos_artigos` WHERE `nome_artigo` LIKE '%saco%' AND `nome_artigo` not LIKE '%mistura%'");
$query2 = mysql_query("SELECT * FROM `jos_empresas` WHERE `id` = '$userId' ORDER BY `razao_social`");
?>

<table>
<form name="artigo" method="post" action="submit.php" enctype="application/x-www-form-urlencoded" dir="ltr" lang="pt">
<b>Dados:</b>
<tr><td><label for="nome">Vendedor: </label></td><td>
<input readonly="readonly" type="text" id="nome" name="nome" value="<?php echo $userName ; ?>" /></td></tr>

<input type="hidden" id="id" name="id" value="<?php echo $userId ; ?>" />

<tr><td><label for="n_pedido">Pedido: </label></td><td>
<input readonly type="text" id="n_pedido" name="n_pedido" value="<?php echo $ultpedid["n_pedido"] + 1 ; ?>" size="3" maxlength="4" /></td></tr>
<tr><td><label for="">Cliente:</label></td><td>
<select id="cliente" name="cliente"><option>Selecione...</option>

<?php while($cliente = mysql_fetch_array($query2)) { ?>
<option value="<?php echo $cliente['razao_social'] ?>"><?php echo $cliente['razao_social'] ?></option>
<?php } ?>

</select></td></tr>
</table>

<br />

<b>Produtos:</b><br />
<div name="item" id="item"> 
<label for="">Item 1: </label>
<select id="item[]" name="item[]">
<option>Selecione...</option>

<?php while($prod = mysql_fetch_array($query)) { ?>
<option value="<?php echo $prod['nome_artigo'] ?>"><?php echo $prod['nome_artigo'] ?></option>
<?php } ?>

</select>
<label for="quant">Quantidade:</label>
<input name="quant[]" type="num" id="quant[]" size="5" maxlength="6" />
<label for="unidade"></label>
<select name="unidade[]" id="unidade[]">
  <option value="MI">MI</option>
  <option value="UN">UN</option>
  <option value="PCT">PCT</option>
 </select> 
 <label for="preco">Valor: R$</label>
 <input name="preco[]" type="text" id="preco[]" size="5" maxlength="6" />
<input type="button" value="Novo Item" onClick="addInput('item');"> 
</div>
<br />
<br />

<table>
<tr><td><label for="condpagto">Cond. de Pagamento: </label></td><td>
   <select name="condpagto" id="condpagto">
     <option>30 Dias</option>
     <option>30/45 Dias</option>
     <option>7/14 Dias</option>
     <option>30/60/90 Dias</option>
     <option>Antecipado</option>
   </select></td></tr>
</table>
<input name="reset" type="reset" value="Limpar" />
   <input type="submit" name="enviar" id="enviar" value="Enviar Pedido" />

</form>


</body>
</html>

 

Código do Submit:

<b><center>Seu pedido foi enviado com sucesso! Logo entraremos em contato!</b></center>
<br /><br />
Nome: <?php echo $_POST['nome']; ?> <br />
N° pedido: <?php echo $_POST['n_pedido']; ?> <br />
Cliente: <?php echo $_POST["cliente"]; ?> <br />
Cond. de Pagamento: <?php echo $_POST["condpagto"]; ?> <br />

<?php 
$id = $_POST['id'];
$nome_user = $_POST['nome'] ;
$n_pedido = $_POST['n_pedido'] ;
$cond_pagto = $_POST["condpagto"] ;
$cliente = $_POST["cliente"] ;
?>

<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('nalplast') or die(mysql_error());
?>

<table>
<tr>
<td>
Itens:  <br /></td>
		<td>
			<?php 
				$item = $_POST["item"];
			    $quant = $_POST["quant"];
				$un = $_POST["unidade"];
				$preco = $_POST["preco"];
				foreach ($item as $itens) {
				echo "  " . $itens . "            <br>";
				}
			?>
			</td>
			<td><?php foreach ($quant as $quants) { 
				echo "  " . $quants . "  <br>";

				} ?>
			</td>
			<td>
			<?php foreach ($un as $uns) {
				echo "  " . $uns . "  <br>";

				} ?>
			</td>
			<td align="right">
			<?php foreach ($preco as $precos) {
				echo "  Valor: R$  " . $precos . "<br>";	

				}
			?>

			</td></tr><br />
			</table>
<br />

<input type="button" value=" <-- Voltar ao site " onclick="history.go(-1);return false;" />

<?php

for($i = 0, $count = count($un); $i < $count; $i++) {
   mysql_query("INSERT INTO `jos_pedidos` (n_pedido, nome_user, id, cond_pagto, data, transp, cliente, itens, quant, un, valor) VALUES ('$np[$i]','$nome_user','$id','$cond_pagto','$data','$transp','$cliente','$item[$i]','$quant[$i]','$un[$i]','$preco[$i]')");
   } 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.