-1

こんにちは、私は以下のコードを持っています:

<script type="text/javascript">
 14         $(document).ready(function() {
 15                 $('#find').click(function(){
 16                         
 17                         var amount = $('#amount').val();
 18 
 19                         $.ajax({
 20                                 type: "POST",
 21                                 contentType: "text/xml;charset=utf-8",
 22                                 url: "questions.php",
 23                                 data: {'amount': amount},
 24                                 success: function(data){
 25                                         
 26                                         $('#results').show();
 27                         
 28                                         
 29                                         $('#results').html(data);
 30                                 }
 31                         });
 32                 });
 33         });
 34     </script>

私のphpスクリプトには以下のコードがあります

5 $search_term = $_POST['amount'];
6 echo $search_term;

コンテンツタイプのもので21行目を削除すると、入力が出力として得られますが、それでは出力として何も得られません! 問題は、コンテンツ タイプが本当に必要なので、それに関する情報が本当に役立つということです!

4

2 に答える 2

0

21行目を変更

contentType: "text/xml;charset=utf-8",

contentType: "application/x-www-form-urlencoded;charset=utf-8",
于 2012-08-07T19:55:49.943 に答える
0

データをフォーム データとして送信していますが、送信データを XML として宣言しています。XML を想定している場合、PHP は JSON データを解析できないため、何も返されません。また、設定するのはオプションですcontentType

jQueryドキュメントから:

contentType デフォルト: 'application/x-www-form-urlencoded; charset=UTF-8'

サーバーにデータを送信するときは、このコンテンツ タイプを使用します。デフォルトは「application/x-www-form-urlencoded; charset=UTF-8」で、ほとんどの場合はこれで問題ありません。content-type を $.ajax() に明示的に渡すと、(データが送信されなくても) 常にサーバーに送信されます。文字セットが指定されていない場合、データはサーバーのデフォルトの文字セットを使用してサーバーに送信されます。サーバー側でこれを適切にデコードする必要があります。

于 2012-08-07T19:47:46.670 に答える