ajax不使用jquery

时间:2017-04-24 06:12:13

标签: php jquery ajax

这是我的ajax代码。

我在代码中看不到任何错误,但AJAX不起作用。

它不会从该页面返回任何内容......

function addCash(){ 
 var cash =$('#cash_amount').val();
 var date =$('#cash_date').val(); 
 var debiter =$('#debiter').val();  
 if(cash == '' || date =='' ){
 alert("Please Fill All Fields");
 }
else{
$.ajax({
    type: 'POST',
    dataType:'JSON',
    url: 'getCustomers.php',
    data: 'type=cash_received&cash='+cash+'&date='+date+'& debiter='+debiter,
    success:function(data){
      console.log(data);
      alert("Cash Added Successfully");
    }
});
}
}

PHP代码“getCustomers.php”...在使用ajax的函数内是一个问题?

$cash= $_REQUEST['cash'];
$date= $_REQUEST['date'];
$debiter= $_REQUEST['debiter'];
$query="INSERT INTO `received_payment`(`debiter`, `amount`, `date`) VALUES ('".$debiter."', '".$cash."', '".$date."')";

$result = $mysqli->query($query) or ($error=$mysqli->error.LINE);

$arr = array();
if(!$result){
$arr['result'] = isset($error) ? $error : 'error';
}
else{
$arr['result'] ="ok";
}
$json_response = json_encode($arr);
ob_clean();
echo $json_response;`

4 个答案:

答案 0 :(得分:1)

因为,如果查询失败,您正在使用die anf,那么您的脚本将会死亡,因此不会做出任何响应。所以改变以下行,

$result = $mysqli->query($query) or die($mysqli->error.__LINE__);

$result = $mysqli->query($query) or ($error=$mysqli->error.__LINE__);

并且您可以在响应中返回此错误,例如

if(!$result){
   $arr['result'] = isset($error) ? $error : 'error';
}

同样在您的插入查询中,字段及其值不匹配,您应该使用它,如

$query="INSERT INTO `received_payment` (`debiter`, `amount`, `date`) 
                       VALUES ('".$debiter."', ".$cash."', '".$date."')";

尝试从AJAX传递数据(在数据字符串中的debiter键之前有空格),例如

data: {type:'cash_received',cash:cash,date:date,debiter:debiter},

答案 1 :(得分:0)

INSERT查询中的额外逗号。

$query="INSERT INTO `received_payment`(`debiter`, `amount`, `date`,) VALUES ('".$cash."', '".$date."', '".$debiter."')";

更改为:

$query="INSERT INTO `received_payment`(`debiter`, `amount`, `date`) VALUES ('".$cash."', '".$date."', '".$debiter."')";

它实际上是error,但是由于您提供了die(),因此代码将退出。所以你没有从Server获得任何东西。

答案 2 :(得分:0)

在AJAX请求中,您提到只接受JSON数据内容。所以在某些情况下,如果PHP错误打开,可能会发生服务器返回带有警告和错误的响应。

因此,在json格式的echo响应之前的服务器端PHP脚本中,您可以使用ob_clean()来刷新由错误或警告发送的所有意外输出。

$json_response = json_encode($arr);
ob_clean();
echo $json_response;

答案 3 :(得分:0)

请删除行尾的引号

echo $json_response;`