2017-04-24 12 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__); 

に、以下の行を変更して、あなたのINSERTクエリ、フィールドとその値でも

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

ではない、のような応答にこのエラーを返すことができます一致、あなたのように使用する必要があります

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

とAjaxからデータを渡すようにしてください(あなたのデータ列におけるdebiterキーの前にスペースがある)AJAXリクエストのように、

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

'data:{type: 'cash_received'、現金:現金、日付:デビット:デビット}、'、私の更新された回答を見てください。 –

+0

まだ動作していません – Jana

+0

ブラウザのコンソールにエラーがある場合は、そのコンソールを参照してください。そして、あなたのAjaxコール要求が行われていることを確認してください。エラーが発生しました\t \tエラー:function(XMLHttpRequest、textStatus、errorThrown){ alert( "Status:" + textStatus);エラー機能を使用した後の –

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

あなただけのJSONデータの内容を受け入れる言及しています。そのため、PHPエラーが発生した場合、WarningとErrorを返してサーバーが応答を返すことがあります。

したがって、エラーまたは警告によって送信されるすべての予期しない出力をフラッシュするには、ob_clean()を使用して、json形式でエコー応答する前にサーバー側のPHPスクリプトを使用します。

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

これで私のコードを更新しました。まだ何も返さない – Jana

0

echo $json_response;` 
関連する問題