Não estou conseguindo mandar para o banco de dados o id da especialidade que eu escolher no <select> ela sempre fica com 0 só está cadastrando o nome dela alguém poderia me ajudar por favor.
Obs. eu fiz o registro de alguns itens diretamente no banco para testar a listagem.
Banco de dados: bancoq
Tabela1: especialidades
col1:id
col2:esp_sigla
col3:esp_nome
Tabela2:materia
col1:id
col2:id_esp
col3:materia_nome
<?php
require 'database.php';
if ( !empty($_POST)) {
// keep track validation errors
$materiaError = null;
// keep track post values
$materia = $_POST['materia'];
// input de validação
$valid = true;
if (empty($materia)) {
$materiaError = 'Por favor Entre com a Sigla da Especialidade';
$valid = false;
}
// inserindo na DB
if ($valid) {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO materias (materia) values(?)";
$q = $pdo->prepare($sql);
$q -> execute(array($materia,));
Database::disconnect();
header("Location: index.php");
}
}
?>
<!DOCTYPE html>
<html>
<head>
<link href="css/bootstrap.min.css" rel="stylesheet">
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="span10 offset1">
<div class="row">
<h3>Cadastrando Matéria</h3>
</div>
<form class="form-horizontal" action="create_m.php" method="post">
<div class="control-group <?php echo !empty($materiaError)?'error':'';?>">
<label class="control-label">Nome da Matéria:</label>
<div class="controls">
<input name="materia" type="text" placeholder="Entre com o nome da matéria" value="<?php echo !empty($materia)?$materia:'';?>">
<?php if (!empty($materiaError)): ?>
<span class="help-inline"><?php echo $materiaError;?></span>
<?php endif; ?>
</div>
</div>
<select name="especialidades" id="especialidades">
<option value="">Selecione uma especialidade</option>
<?php
$pdo = Database::connect();
$sql2 = 'SELECT * FROM especialidades';
foreach ($pdo->query($sql2) as $row2) :
echo '<option value="'.$row2['id'].'">'.$row2['esp_nome'].'</option>';
endforeach;
?>
</select>
<div class="form-actions">
<button type="submit" class="btn btn-success">Create</button>
<a class="btn" href="index.php">Voltar</a>
</div>
</form>
</div>
</div> <!-- /container -->
</body>
</html>
Pergunta
securao
Não estou conseguindo mandar para o banco de dados o id da especialidade que eu escolher no <select> ela sempre fica com 0 só está cadastrando o nome dela alguém poderia me ajudar por favor.
Obs. eu fiz o registro de alguns itens diretamente no banco para testar a listagem.
Banco de dados: bancoq
Tabela1: especialidades
col1:id
col2:esp_sigla
col3:esp_nome
Tabela2:materia
col1:id
col2:id_esp
col3:materia_nome
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
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.