Array
(
)

Problemas COm Radio e Select Objects

PHP
Rafael Lessa
   - 01 ago 2013

E ai Pessoal, to com problema em que meu BD.
Não consigo inserir no BD os dados do radio e do Select options.
Abaixo o meu código html e php:
HTML
<html>
<head>
<title>Formulário para Inserir no BD</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h1>Cadastro IDs</h1>
<form action="renali.php?acao=cadastro" method="post">
<table width="450" border="1px" cellspacing="0" cellpadding="5">
<tr>
<td width="111"><div aling="rigth">ID </div></td>
<td width="339"><input name="id" type="int" size="4"></td>
</tr>
<tr>
<td width="111"><div aling="center">Descricao </div></td>
<td width="339"><textarea name="descricao" id="Descricao"></textarea></td>
</tr>
<tr>
<td width="111"><div aling="left">Solicitante </div></td>
<td width="339"><input name="solicitante" type="varchar" size="30"></td>
</tr>
<tr>
<td width="111"><div aling="rigth">Status </div></td>
<td width="339">
<input type="radio" name=status value="espera">Espera
<input type="radio" name=status value="tratando">Tratando
<input type="radio" name=status value="finalizado">Finalizado</td>
</tr>
<tr>
<td width="111"><div aling="rigth">Usuario </div></td>
<td width="339"><select name="usuario">
<option value="lessa">Rafael Lessa
<option value="ribeiro">Rafael Ribeiro
<option value="felipe">Felipe Martendal</td></select>
</tr>
<tr>
<td height="29" colspan="2" valign="top"><div align="center">
<input type="submit" name="Submit" value="Inserir no Banco de Dados">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>

PHP
<?php
include ("connect.php");
$id = $_POST['id'];
$descricao = $_POST['descricao'];
$solicitante = $_POST['solicitante'];
switch ($_POST['status']) {
case 'espera':
$status = $_POST['espera'];

case 'tratando':
$status = $_POST['tratando'];

case 'finalizado':
$status = $_POST['finalizado'];
break;
}
switch ($_POST['usuario']) {
case "1":
echo 'Rafael Lessa';
break;
case "2":
echo 'Rafael Ribeiro';
break;
case "3":
echo 'Felipe Martendal';
break;
}

$query = "INSERT INTO `req` (id, descricao, solicitante, status, usuario) values ('$id', '$descricao', '$solicitante', '$status', '$usuario')";
$exec = mysql_query($query);
var_dump($exec, mysql_error());
#ECHO "<PRE>";
#var_dump($_POST['req']);DIE('SUCESSO');
#if (($renali) || ($A)){
#header (renali.html);
#exit;
#}
?>

Att,

Bruno Betioli
   - 02 ago 2013

Você tinha alguns erros no HTML, faltava aspas em name=status nos inputs radio, as tags option do select não estavam fechadas, não existe type varchar para input, você estava fechando td antes de fechar select e tinha erros de escrita em align e right.

#Código

<html>
	<head>
		<title>Formulário para Inserir no BD</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	</head>

	<body>
		<h1>Cadastro IDs</h1>
		<form action="renali.php?acao=cadastro" method="post">
			<table width="450" border="1px" cellspacing="0" cellpadding="5">
				<tr>
					<td width="111"><div align="right">ID </div></td>
					<td width="339"><input name="id" type="int" size="4" /></td>
				</tr>
				<tr>
					<td width="111"><div align="center">Descricao </div></td>
					<td width="339"><textarea name="descricao" id="Descricao"></textarea></td>
				</tr>
				<tr>
					<td width="111"><div align="left">Solicitante </div></td>
					<td width="339"><input name="solicitante" type="text" size="30" /></td>
				</tr>
				<tr>
					<td width="111"><div align="right">Status </div></td>
					<td width="339">
						<input type="radio" name="status" value="espera" />Espera
						<input type="radio" name="status" value="tratando" />Tratando
						<input type="radio" name="status" value="finalizado" />Finalizado
					</td>
				</tr>
				<tr>
					<td width="111"><div align="right">Usuario </div></td>
					<td width="339">
						<select name="usuario">
							<option value="lessa">Rafael Lessa</option>
							<option value="ribeiro">Rafael Ribeiro</option>
							<option value="felipe">Felipe Martendal</option>
						</select>
					</td>
				</tr>
				<tr>
					<td height="29" colspan="2" valign="top">
						<div align="center"><input type="submit" name="Submit" value="Inserir no Banco de Dados" /></div>
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>


Já no PHP, não é necessário o switch para status, já que é passado um valor diferente do radio status, de acordo com o escolhido. Já no switch do usuário, você colocou para escolher numeros, mas o atributo passado pelo select no formulario é o nome/sobrenome.

#Código
<?php

include ("connect.php");

$id = $_POST['id'];
$descricao = $_POST['descricao'];
$solicitante = $_POST['solicitante'];
$status = $_POST['status'];

switch ($_POST['usuario']) {

	case "lessa": $usuario = 'Rafael Lessa'; break;

	case "ribeiro": $usuario = 'Rafael Ribeiro'; break;

	case "felipe": $usuario = 'Felipe Martendal'; break;

	default: $usuario = "Desconhecido"; break;
}


$query = "INSERT INTO req (id, descricao, solicitante, status, usuario) VALUES ('$id', '$descricao', '$solicitante', '$status', '$usuario')";

$exec = mysql_query($query);

var_dump($exec, mysql_error());

#ECHO "<PRE>";
#var_dump($_POST['req']);DIE('SUCESSO');

#if (($renali) || ($A)){
#header (renali.html);
#exit;
#}

?>


Diga-nos se deu certo.

Rafael Lessa
   - 02 ago 2013

Valeu Bruno!!!

Muito obrigado pelo apoio!!

Marcio Araujo
   - 02 ago 2013

otima dica, tomei a liberdade de copiar!!!

Marcio Araujo
   - 02 ago 2013

para finalidade de estudar!!!

Rodrigo Lacerda
   - 07 ago 2013

Ótimo tópico , resposta muito construtiva do Bruno..