POST变量没有变化

时间:2013-02-23 15:04:52

标签: php javascript forms

我有一个带有一些jQuery UI可排序的表单,其中data-属性被序列化为隐藏文本框,因此当我发送表单时,我的PHP脚本可以查看$_POST["contents"]的值(这是一个像1-2-2-1这样的字符串,并将其传递给我的MySQL UPDATE查询。问题是,发送表单之前文本框的报告值(来自javascript)与$_POST中的文本框的报告值不同。

表格:

<form method="post" action="?update">
    <input type="text" name="id" style="display:none" value="1" />
    <input type="text" name="path" placeholder="Endereço Ex.: /pacotes/pureenergy" value="/some/path" /> <input type="text" name="title" placeholder="Título da página" value="<?php echo $t;?>" /><br />
    <!-- Some stuff hidden for briefness -->
    <input type="text" id="ci" name="contents" style="display:none" value="1-2-2-1" />
    <input type="submit" value="Atualizar página" onclick="updateForm()">
</form>

Javascript:

function updateForm() {
    var txt = $("#dropzone li:first-of-type").data("id");
    $("#dropzone li:not(:first-of-type)").each(function() {
        txt = txt+"-"+$(this).data("id");
    });
    $("#ci").text(txt);
    alert(txt);
}

PHP:

$id = $_POST["id"];
$p = $_POST["path"];
$t = $_POST["title"];
$c = $_POST["contents"];
mysql_query("UPDATE aruna.pages SET path='$p', title='$t', contents='$c' WHERE id=$id") or die(mysql_error());

javascript alert()报告的值符合预期,但是当我发送表单时,$_POST["contents"]的值与HTML中的硬编码相同。

编辑: PHP不会抱怨$_POST["contents"]未设置,如果有拼写错误就会出现错误。

1 个答案:

答案 0 :(得分:2)

您可以尝试.val()而不是.text()