我有一个问题,我的一些数据没有通过PHP。我认为问题在于ajax发送它。我发送了大约10个属性,其中一些是字符串,一些是整数。这只是我所做的简化示例。我认为,它错过的几个值是整数。有些值来自cordova.Localstorage storage.getItem("itemkeyname");
连接没有问题,因为我至少得到错误消息说"缺少数据"等等..
我已经尝试过PHP的isset()而不是empty(),它没有改变任何东西。
var_dump()返回发送属性的数组,但很少有最后一个属性被截断或丢失。
//when submitbtn is pressed
$("#submitbtn").click(function () {
// First I get data from input elements from page
$name = $("#name").val();
$name2 = $("#name2").val();
//debug to see $name's value
alert("name: " + $name + ", name2: " + $name2);
// then I check it's not empty/null
if ($name && $name2) {
//then call ajax and send data to server
$.ajax({
url: "http://localhost:1234/phpfile.php",
type: "POST",
data: {
name: $name,
name2: $name2
},
dataType: "text",
success: function (response) {
alert(response);
},
error: function (err) {
$output = JSON.stringify(err);
alert($output);
}
});
}
});
在服务器端phpfile.php
<?php header('Content-Type: text/html; charset=utf-8');
//store missing data on array
$data_missing = array();
if(empty($_POST['name'])) {
$data_missing[] = "name";
} else {
$name = trim($_POST['name']);
}
if(empty($_POST['name2'])) {
$data_missing[] = "name2";
} else {
$name2 = trim($_POST['name2']);
}
//check there's no data missing
if(empty($data_missing)) {
//do stuff
} else {
echo 'missing data: ';
foreach($data_missing as $missing) {
echo '$missing , ';
}
}
?>
答案 0 :(得分:0)
尝试将输入值检查为:
if(!isset($ _ POST [&#34; name&#34;])|| strlen(trim($ _ POST [&#34; name&#34;]))== 0){ $ data_missing [] =&#34; name&#34 ;; }