2017-10-20 25 views
0

私はプログラミングが初めてで、Ajaxではうまくいかない。
私はAjaxのPHPスクリプトから価値を得たいと思っています。
私はそのようなPHPスクリプトはJavaScript変数を送信する:Ajaxからの戻り値

I:

$('#deleteSelectedButton').on('click', function() { 
    if (confirm('Do you want to suppress the messages ?')) { 
     $.ajax({ 
      type: 'POST', 
      url: 'suppression-message', 
      data: { 
       'checkboxIdArray': checkboxIdArray.toString(), 
      } 
     }); 
     return false; 
    } 
}); 

これはcheckboxIdArrayに含まれるIDに応じて、メッセージを削除して、次のPHPスクリプトに送られますスクリプトの結果に応じてメッセージを表示するために$ message変数をjavascriptに戻したいとします。

私は実際にいくつかの助けをいただければ幸いです...
ありがとうございました。

+0

あなたは 'PHPから変数をecho'、と'成功にそれを得ることができます。function(それぞれ) 'AJAXコールバック関数 – Lixus

+0

だから成功ハンドラを使用しています。 jQueryのドキュメントを読んでください。 – epascarello

答えて

0

あなたが応答で

$.ajax({ 
      type: 'POST', 
      url: 'suppression-message', 
      data: { 
       'checkboxIdArray': checkboxIdArray.toString(), 
      }, 
      success : function(response){ 
       // your code or logic 
       alert(response); 
      } 
     }); 

PHP

if ($deleteSuccess === true) { 
    $message = 'Success'; 
} else { 
    $message= "Error"; 
} 
echo $message; 
0
$('#deleteSelectedButton').on('click', function() { 
    if (confirm('Do you want to suppress the messages ?')) { 
     $.ajax({ 
      type: 'POST', 
      url: 'suppression-message', 
      data: { 
       'checkboxIdArray': checkboxIdArray.toString(), 
      }, 
      success: function(response){ 
       alert(response); 
      } 
     }); 
     return false; 
    } 
}); 
0

を成功機能を使用する必要があり、実際にメッセージが含まれるJavaScriptで作られたHTTPリクエストに関する特別なものは何もありません。

他のHTTP応答と同じ方法で、PHPからの応答でデータを出力します。 JavaScriptで

echo $message; 

、あなたはそれas described in the documentation for jQuery.ajaxを処理します。

応答内容を最初の引数として受け入れる関数を記述します。

そして戻りアヤックスjqXHRオブジェクト上doneを呼び出し、それをその関数を渡します。

function handleResponse(data) { 
     alert(data); 
    } 

    var jqXHR = $.ajax({ 
     type: 'POST', 
     url: 'suppression-message', 
     data: { 
      'checkboxIdArray': checkboxIdArray.toString(), 
     } 
    }); 

    jqXHR.done(handleResponse); 
0

ここでアヤックスに

<script> 
$('#deleteSelectedButton').on('click', function() { 
    if (confirm('Do you want to suppress the messages ?')) { 
     $.ajax({ 
      type: 'POST', 
      url: 'suppression-message', 
      data: { 
       'checkboxIdArray': checkboxIdArray.toString(), 
      } 
     }).done(function(result) 
     { 
      alert(result); 
     }); 
     return false; 
    } 
}); 

</script> 

を値を取得するためのコードを試してみてくださいjQueryの.doneが成功を実装するための好ましい方法である、のDeferredを実装しているので、PHPコード

<?php 
if (isset($_POST['checkboxIdArray'])) { 

    $checkboxIdArray = $_POST['checkboxIdArray']; 
    $str = json_encode($checkboxIdArray); 
    $tab = explode(",", $str); 
    $deleteSuccess = true; 

    foreach($tab as $id) 
    { 
     $id = filter_var($id, FILTER_SANITIZE_NUMBER_INT); 
     if (!$messageModelDb->delete($id)) { 
      $deleteSuccess = false; 
      die(); 
     } 
    } 
    if ($deleteSuccess === true) { 
     $message = 'Success';; 
    } else { 
     $message= "Error"; 
    } 
    echo $message; 
} 
?> 
0

です折り返し電話。また、失敗応答コードを使用して.failメソッドを実装する必要があります。