2017-04-24 91 views
-2

这是我的ajax代码。ajax不能与jquery

我在代码中看不到任何错误,但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” ......?

$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;` 
+0

你在同一个页面上有这些代码行的末尾删除引号? –

+0

没有..有些上传问题..所以我把它放在一起..对此 – Jana

+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}, 
+0

传递'data'如'data:{type:'cash_received',现金:现金,日期:日期,debiter:debiter},',查看我更新的答案。 –

+0

无法正常工作 – Jana

+0

如果您的浏览器有任何错误,请查看您的浏览器控制台。并确保您的Ajax调用请求已完成。 –

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()代码是越来越退出。所以你没有从服务器获取任何东西。

0

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

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

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

现在我已经更新了我的代码..只是检查出来。它仍然没有任何回报 – Jana

0

echo $json_response;`