【发布时间】:2015-10-21 18:21:48
【问题描述】:
我面临的问题是我在调用 Ajax 时得到了一个未定义的索引变量。 单击提交按钮时,我需要将“json”数据发布到“update.php”页面。基本上,我需要捕获文本框中的值并将其发送到数据库。
所以,我在提交按钮上创建了一个表单,代码如下:
<form action="update.php" method = "post" class="form-inline">
<input type="submit" class="btn btn-info" id = "saveEdits" disabled = "disabled" onclick = "updateVal()" name="saveEdits" value="Update"/>
/form>
此提交按钮调用 UpdateVal 函数,该函数捕获页面上显示的文本框上的值并使用 AJAX 将其发送到另一个 php 页面。
updateVal函数如下:
function updateVal() {
var node_list = document.getElementsByTagName('input');
var c = 0;
var fieldName = [];
var fieldText = []
var ID = [];
for (var i = 0; i < node_list.length; i++) {
var node = node_list[i];
if (node.getAttribute('type') == 'text') {
fieldName[c] = node.name;
fieldText[c] = node.value;
ID[c] = node.id;
c++;
}
}
var postData = {
fieldName: fieldName,
fieldText: fieldText,
ID: ID
};
$.ajax({
type: "post",
url: "update.php",
dataType: "json",
data: {'postData' : JSON.stringify(postData)},
contentType: 'application/x-www-form-urlencoded; charset=UTF-8'
});
正在捕获运行时数据,即文本框中的值,并且可以在控制台上显示,但是,当我在 update.php 上发布此数据时,我将在其中捕获 json 并更新数据库,我'我得到错误:
注意:未定义索引:在第 11 行的 update.php 中
下面是我的update.php
<?php
$json = $_POST["postData"];
$result = json_decode($json);
var_dump($result);?>
【问题讨论】:
-
update.php中只有 4 行。第11行怎么会出错? -
你为什么打电话给
json_decode?你没有使用JSON.stringify()编码postData? -
你是如何调用你的
updateVal函数的?可能您的提交按钮还将表单数据发送到 update.php,因为您在action="update.php"属性中指定了这一点 -
因为,我删除了显示错误和其他文件加载的不必要行
-
我也用过“JSON.stringify()”,但是没用
标签: javascript php jquery html ajax