Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php POST变量未更改_Php_Javascript_Forms - Fatal编程技术网

Php POST变量未更改

Php POST变量未更改,php,javascript,forms,Php,Javascript,Forms,我有一个表单,其中包含一些jQuery UI排序表,这些表具有数据-属性,这些属性被序列化到一个隐藏的文本框中,因此当我发送表单时,我的PHP脚本可以查看$\u POST[“contents”](这是一个类似于1-2-2-1的字符串)的值,并将其传递给我的MySQL更新查询。问题是,发送表单之前(从javascript)文本框的报告值与$\u POST中的值不同 表格: <form method="post" action="?update"> <input type=

我有一个表单,其中包含一些jQuery UI排序表,这些表具有
数据-
属性,这些属性被序列化到一个隐藏的文本框中,因此当我发送表单时,我的PHP脚本可以查看
$\u POST[“contents”]
(这是一个类似于
1-2-2-1
的字符串)的值,并将其传递给我的MySQL更新查询。问题是,发送表单之前(从javascript)文本框的报告值与
$\u 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>
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);
}
$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());
PHP:

<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>
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);
}
$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()
报告的值按预期运行,但当我发送表单时,
$\u POST[“contents”]
的值与HTML中硬编码的值相同


编辑:PHP不会抱怨
$\u POST[“contents”]
未设置,如果有打字错误就会取消设置。

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

当您将$(“#ci”).文本输入警报时会发生什么情况?它的输出与
警报(txt)
@ZZ bb kaptainluffy修复了它,没有,因为表单是在我确认警报后才发送的(在文本设置后发生)。原来我使用了错误的jQ函数…它起作用了!谢谢你,伙计。
.val()
.text()
之间有什么区别?我真的不知道。我猜.text()获取.innerHTML属性,而.val()获取value属性。您可以自己在jquery文档中查看它。哦,我现在已经在谷歌上搜索了它,并从jQ文档中获得了信息:
.text()
返回innertext(元素内部的文本,不包括子标记)。
.val()
用于从任何可以包含它的元素中获取/设置
属性。