下午好。
我正在尝试向php提交表单(将其发送到mysql数据库),问题是我能够提交文本描述和文本内容,但是类别和子类别被选中通过脚本,我无法访问它们。 我正在传递我的代码。我是jquery和php的新手。我花了很多时间试图解决它而没有成功。提前谢谢。
<?php require_once ('../../includes/select.php');?>
<?php
if (!$_POST['descricao'] == "") {
$sql = "INSERT INTO conteudos(descricao,conteudo,categorias_id,subcategorias_id) VALUES('" . $_POST['descricao'] ."','" .$_POST['conteudo'] ."','" . $_POST['categoria'] ."','" . $_POST['subcategoria'] ."');";
$sqlconf = mysql_query($sql);
if (!empty($sqlconf)){
$message = "O novo conteudo foi criado com sucesso.";
}
else {
$message = "Erro na criação do conteudo, tente novamente.";
}
}
?>
<script type="text/javascript">
$(document).ready(function(){
$("select#subcategoria").attr("disabled","disabled");
$("select#categoria").change(function(){
$("select#subcategoria").attr("disabled","disabled");
$("select#subcategoria").html("<option>aguarde...</option>");
var id = $("select#categoria option:selected").attr('value');
$.post("selec_subcategoria.php", {id:id}, function(data){
$("select#subcategoria").removeAttr("disabled");
$("select#subcategoria").html(data);
});
});
$("#seleciona").submit(function(){
var desc = $("#descricao").text();
var cont = $("#conteudo").text();
var cat = $("select#categoria option:selected").attr('value');
var subcat = $("select#subcategoria option:selected").attr('value');
event.preventDefault();
$("#result").html('');
//var values = $(this).serialize();
if(cat>0 && subcat>0)
{
$.ajax({
url: "index.php?pagina=gere_conteudos.php",
type: 'POST',
data: $("#seleciona").serialize(),
success: function(){
alert("success");
$("#result").html('Submitted successfully');
},
error:function(){
alert("failure");
$("#result").html('There is error while submit');
}
});
/*$.post('index.php?pagina=gere_conteudos.php', { descricao: desc});
$.post('index.php?pagina=gere_conteudos.php', { conteudo: cont});
$.post('index.php?pagina=gere_conteudos.php', { categoria: cat});
$.post('index.php?pagina=gere_conteudos.php', { subcategoria: subcat});
//$("#result").html('A sua escolha: '+result);*/
$("#teste").html(desc);
$("#teste2").html(cont);
}
else
{
$("#result").html("Tem de escolher todas as opções disponiveis!");
}
//return false;
});
});
</script>
<h2 class="title"><a href="#">SIB - Gestão de conteudos</a></h2>
<p class="meta">Domingo, Dezembro 03, 2013 7:27 AM Posted by <a href="#">Someone</a></p>
<div class="entry">
<div class="tabelas" >
<p>Aqui deverá criar e gerir as publicações de conteudos para o seu sistema de informação de balcões. Só após a criação das categorias é que poderá criar as publicações de conteudos.</p>
<?php if (!empty($message)) {
echo "<p class=\"message\">" . $message . "</p>";
}
?>
<form id="seleciona">
<table>
<tr>
<td>Descrição para a publicação a criar:</td>
<td>
<input type="text" id="descricao" name="descricao" maxlength="30" value="<?php echo htmlentities($descricao); ?>" /></td>
</tr>
<tr>
<td>Texto da publicação:</td>
<td>
<textarea id="conteudo" name="conteudo" rows="15" cols="55" ="<?php echo htmlentities($conteudo); ?>"> </textarea></td>
</tr>
<tr>
<tr>
<td>Escolha de categoria:</td>
<td>
<select id="categoria">
<?php print $opt->ShowCategoria(); ?>
</select>
</tr>
<tr>
<td>Escolha de subcategoria:</td>
<td>
<select id="subcategoria">
<option value="0">Escolha...</option>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="submit" value="Criar conteudo" />
</td>
</tr>
</table>
</form>
<div id="teste"></div>
</div>
答案 0 :(得分:0)
问题与动态值无关;您忘记添加name
属性,因此在使用data: $("#seleciona").serialize(),
序列化表单时不会包含这些属性。
变化:
<select id="categoria">
为:
<select id="categoria" name="categoria">
和
<select id="subcategoria">
为:
<select id="subcategoria" name="subcategoria">
答案 1 :(得分:0)
只有具有name
属性的表单元素才会在提交表单时传递其值。您需要在输入元素中添加name
属性。