2011-03-24 8 views
1

ajaxを使用して別のページを呼び出すjquery/phpコードがあります。php ajax success:function(msg) - msgを取得するmsg

var pall_id = $(this).attr('id'); 
     $.ajax({ 
      type: "POST", 
      url: "do_history.php?pall_id="+pall_id, 
      success: function (msg) { 
       alert (msg); 

      }, 
      error: function (XMLHttpRequest, textStatus, errorThrown) 
      { 
       alert('Error submitting request.'); 
      } 
     }); 

ただし、msgの値を得るにはどうすればよいですか?例えばdo_history.phpが単純である場合:

<?php 

$text="text"; 
return $text; 

?> 

'MSG' は "テキスト" ので、私は警告(MSG)ではありません。私は "テキスト"私の画面上にポップアップを取得します。

文字列値を返すには何が必要ですか?何か案は?

答えて

1

使用echo $text;とあなたの$.ajaxオプションで

おかげで、dataType: 'text'を追加します。

しかし、よりよい解決策はdataType: 'json'を使用し、次いでecho json_encode($text);される - この場合$textもアレイ/オブジェクト/数とすることができ、それはJavaScript関数 に適切な型であろう。

0

あなたはjqueryのは、スクリプトの出力を取り出すため、変数をエコーまたは印刷する必要があり、PHP側の出力テキスト(print 'text'; // echo 'text'

1

する必要があります。単純なリターンでは出力は生成されません。あなたが関数$ .postのためのjQueryのmannualをチェックする必要が

<?php 

$text="text"; 
echo $text; 

?> 
1

、成功paramが関数であり、【選択最も一般的に使用されるparamは要求URLから出力されたMSGであるいくつかのparamsを持っています。 param msgがリクエストurl(do_history.php)の出力であることを知る必要があります。do_history.phpで戻り値を使用すると、コンテンツ($ text)はブラウザに出力されないため、msgパラメータには何も含まれませんecho、printなどを使用すると、コンテンツ($ text)がブラウザに出力され、msgパラメータに値が格納されます!

関連する問題