提交表单时,我在服务器端 PHP 脚本中遇到了获取 POST 数据的问题。我将其缩小为一些通过 AJAX 将 JSON 数据加载到数据表中的 JQuery/JavaScript。
形式如下:
<form class="form-horizontal" action="./scripts/lookup.php" method="post" role="form" id="lookupForm">
<div class ="form-group">
<label for="inputLookup" class="col-sm-2 control-label">Username</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputLookup" name="lookup_name" placeholder="John.Doe" required/>
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<input id="submitUserLookupBtn" name="submitUserLookup" type="submit" value="Lookup" class="btn btn-primary"/>
</div>
</div>
</form>
然后是脚本:
$("#lookupForm").submit(function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: './scripts/lookup.php',
dataType: 'json',
success: function(s) {
LUUTable.fnClearTable();
for(var i = 0; i < s.length; i++) {
LUUTable.fnAddData([
s[i][0],
s[i][1],
s[i][2],
s[i][3],
s[i][4],
s[i][5],
s[i][6],
s[i][7]
]);
}
},
error: function(e) {
if (e.responseText != '') {
console.log("Error: " + e.responseText);
} else {
console.log("Warning: No data to return.");
}
}
});
});
无论何时运行该代码片段,PHP 都不会获取 POST 数据,但是一旦我将脚本注释掉,POST 数据就会发送到服务器。然而,问题在于这段代码是我处理服务器返回的 JSON 数据的地方。
导致数据无法 POST 的原因可能是什么,我该如何进一步解决或缓解此问题?
非常感谢!
最佳答案
您将数据两次发送到 ./script/lookup.php
<form class="form-horizontal" action="./scripts/lookup.php" method="post" role="form" id="lookupForm">
在 Ajax 脚本中。将上面一行改为
<form class="form-horizontal" role="form" id="lookupForm">
只需保留 url,然后在 javascript 的 ajax 调用中键入:post。
关于javascript - PHP 使用 AJAX 和 DataTables 发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266886/