无法从php true AJAX获取值。
我的php代码是
<?php
$name = $_POST['name'];
$hobby = $_POST['hobby'];
if (!empty($name and $hobby)){
echo 'Data was succesfully captured';
}else {
echo 'Data was not captured'
}
我的html代码是
<div id="result"></div>
<form method="post">
<input name="name" type="text" id="name">
<br>
<input name="hobby" type="text" id="hobby">
<input name="snd_btn" type="button" id="snd_btn" value="Save">
</form>
JS
$(document).ready(function(){
$('#snd_btn').click(function() {
var name = $('#name').val();
var hobby = $('#hobby').val();
$.ajax({
url: "save.php",
type: "POST",
dataType: 'json',
data: { name, hobby,
success: function(result) {
$('#result').html(result);
},
}
});
});
});
如果我将js中的更改为
success: function() {
$('#result').html('Data was succesfully captured');
},
它可以工作,但不能在php中工作
发布于 2018-06-25 02:23:42
首先,您要检查ajax调用是否成功完成
如果ajax调用成功完成,
通过在控制台中打印查看成功数据的响应。
你的php代码应该是这样的
<?php
$name = $_POST['name'];
$hobby = $_POST['hobby'];
if ($name and $hobby ){
echo json_encode('Data was succesfully captured');
}else {
echo json_encode('Data was not captured');
}
在php中,你必须以json的形式返回数据。
和js端:
$(document).ready(function(){
$('#snd_btn').click(function() {
var name = $('#name').val();
var hobby = $('#hobby').val();
$.ajax({
url: "save.php",
type: "POST",
dataType: 'json',
data: { name:name, hobby:hobby} // data in { key : value}
success: function(result) {
res = JSON.parse(res);
console.log(res);// display in developertools > console
$('#result').html(res);
},
}); }); });
发布于 2018-06-25 01:46:52
这个是错的。
if (!empty($name and $hobby)) {
请将其替换为:
if (!empty($name) and !empty($hobby)) {
你必须检查每一个变量是否为空。
https://stackoverflow.com/questions/51012435
复制相似问题