0

私はJQueryに不慣れで、JQueryからPHPに戻ってJQueryプロセスに戻ります。

だから私は簡単なajaxJQueryスクリプトを持っています:

$.ajax({

           type: "POST",
           url: "includes/calc.php",
           data: {

               'var1':var1,
               'var2':var2,

           },
           success: function(data){
               alert(data);
               $("input#hiddenprice").val(data);
               $('#'+itemprice).html("€"+data);

           }

       })

これはPHPスクリプトに送られ、単純なエコーを使用して値を返します

echo $newprice;

上記のsuccess関数は、これを「データ」として使用します。これはすべて機能し、問題ありません。

しかし、複数の値を返したい場合はどうなりますか。

使えると思いますjson_encode();

私が理解しているように、次のようなものです。

$dataset = array($var1, var2, var3);

echo json_encode($dataset);

しかし、2つの値があるとしましょう。両方をJSONに入れる方法と、もう一方の端で分割する方法です。

つまり、「データ」は配列であるとすると、JQueryにそれを分割するように指示するにはどうすればよいですか?

これが簡単ならごめんなさい

4

4 に答える 4

1

.ajax()asにdataType オプションを指定するとjson、jQuery は呼び出しによって返された JSON 文字列を適切な JavaScript オブジェクト/配列に自動的に解析します。

したがって、呼び出しは次のようになります。

$.ajax({

   type: "POST",
   url: "includes/calc.php",
   dataType: "json",
   data: {

       'var1':var1,
       'var2':var2,

   },
   success: function(data){
       alert(data);
       $("input#hiddenprice").val(data);
       $('#'+itemprice).html("€"+data);

   }

})

ここで、PHP スクリプトからの応答が、次のようなオブジェクトを表す JSON 文字列であるとします。

{"key1":"value1","key2":"value2"}

成功ハンドラーでは、次のようなオブジェクトとしてこれに簡単にアクセスできます。

   success: function(data){
       alert(data.key1);
       alert(data.key2);
   }

または、返された JSON 文字列が次のような配列を表す場合:

["value1","value2"]

次に、次のように成功ハンドラーで配列値にアクセスできます。

   success: function(data){
       alert(data[0]);
       alert(data[1]);
   }

オプションを追加したくない場合はdataType、返された JSON 文字列を次のようにオブジェクト/配列に手動で解析することもできます。

   success: function(data){
       var dataObj = JSON.parse(data);
       alert(dataObj.key1);
       alert(dataObj.key2);
   }
于 2013-03-14T15:56:23.010 に答える
1
 $.ajax({

       type: "POST",
       url: "includes/calc.php",
       datatype : 'json',
       data: {

           'var1':var1,
           'var2':var2,

       },
       success: function(data){
           alert(data.firstvalue);
           alert(data.secondvalue);

       }

   })

そのデータ型を見てください。応答はjsonである必要があります。

あなたのPHPユーザーjson_encodeでは、echoの代わりに.

$firstvalue = 'your first value';
$secondvalue = 'your second value';
echo json_encode(array('firstvalue' => $firstvalue,'secondvalue' => $secondvalue));
于 2013-03-14T15:53:45.437 に答える
0

JSONオブジェクトでデータを整理する方法はたくさんあります。最も簡単なのは、文字列または数値の線形配列を返すことです。http://jsonlint.com/を使用してデータをテストし、データが有効なJSONであるかどうかを確認するか、PHP配列(線形または連想)をにフィードしjson_encodeます。

がJSON線形配列の場合、コールバックdataで他のJavaScript配列と同じように扱うことができます。success

var first = data[0]; // first element
var second = data[1]; // second element

于 2013-03-14T15:55:06.210 に答える
-1

シンボルまたは任意のカスタム データを使用して、php 変数を内破します。

お気に入り

$var[0] = '1st variable';
$var[1] = '2nd variable';
$var[2] = '3rd variable';

echo implode('_SPLIT_',$var);

今jqueryの成功関数で

' SPLIT 'で応答を分割します

なので

 var response = data.responseText.split('_SPLIT_');
 var variable1 = response[0];
 var variable2 = response[1];
 var variable3 = response[2]; 

希望に応じて割り当てます

于 2013-03-14T16:22:32.733 に答える