39

これが私の問題です。フォームを投稿するためにAJAX(jQuery)を使用してprocess.phpいますが、ページは実際にはまたはなどの応答をエコーアウトする必要がありappleますplumprocess.phpからの応答を取得して変数として保存する方法がわかりません...

これが私がこれまでに持っているコードです:

<script type="text/javascript">
        function returnwasset(){
            alert('return sent');
            $.ajax({
                type: "POST",
                url: "process.php",
                data: somedata;
                success function(){
                    //echo what the server sent back...
                }
            });
        }
    </script>

process.phpまた、jsonで応答をエコーする必要がありますか?またはプレーンテキストで問題ありませんか?

これがばかげた質問のように聞こえる場合は申し訳ありませんが、Ajaxでそのようなことをするのはこれが初めてです。

PS:上記のコードでPOSTリクエストに名前を付けるにはどうすればよいですか?

4

5 に答える 5

49

<?php echo 'apple'; ?>サーバー上で必要なのは文字通りほとんどすべてです。

JS側の場合、サーバー側スクリプトの出力はパラメーターとしてサクセスハンドラー関数に渡されるため、次のようになります。

success: function(data) {
   alert(data); // apple
}
于 2013-02-17T06:07:52.113 に答える
34

次のように使用することをお勧めします。

$.ajax({
    type: "POST",
    url: "/ajax/request.html",
    data: {action: 'test'},
    dataType:'JSON', 
    success: function(response){
        console.log(response.blablabla);
        // put on console what server sent back...
    }
});

phpの部分は次のとおりです。

<?php
    if(isset($_POST['action']) && !empty($_POST['action'])) {
        echo json_encode(array("blablabla"=>$variable));
    }
?>
于 2013-08-14T22:09:04.593 に答える
16
<script type="text/javascript">
        function returnwasset(){
            alert('return sent');
            $.ajax({
                type: "POST",
                url: "process.php",
                data: somedata;
                dataType:'text'; //or HTML, JSON, etc.
                success: function(response){
                    alert(response);
                    //echo what the server sent back...
                }
            });
        }
    </script>
于 2013-02-17T06:08:50.287 に答える
12

PHPファイルで、データをエコーするときは、json_encode(http://php.net/manual/en/function.json-encode.php)を使用します。

例えば

<?php
//plum or data...
$output = array("data","plum");

echo json_encode($output);

?>

javascriptコードでは、ajaxが完了すると、jsonでエンコードされた応答データを次のようなjs配列に変換できます。

 $.ajax({
                type: "POST",
                url: "process.php",
                data: somedata;
                success function(json_data){
                    var data_array = $.parseJSON(json_data);

                    //access your data like this:
                    var plum_or_whatever = data_array['output'];.
                    //continue from here...
                }
            });
于 2013-02-17T06:10:41.930 に答える
1
var data="your data";//ex data="id="+id;
      $.ajax({
       method : "POST",
       url : "file name",  //url: "demo.php"
       data : "data",
       success : function(result){
               //set result to div or target 
              //ex $("#divid).html(result)
        }
   });
于 2016-02-27T06:32:40.637 に答える