ホームページ > バックエンド開発 > PHPチュートリアル > Ajaxポストデータ送信 PHPバックグラウンドでデータを受信できません

Ajaxポストデータ送信 PHPバックグラウンドでデータを受信できません

WBOY
リリース: 2016-06-23 13:37:02
オリジナル
2012 人が閲覧しました

JS スクリプトの送信

$.ajax({			url:"/music/json.php",			type:"POST",			data:{"id":id},			dataType:"json",			success: function(e){
ログイン後にコピー




PHP バックエンド:
//这里不知道怎么接收数据  echo $_POST["id"]; //不行  echo json_decode($_POST['data']);//不行//下面就是数据库查询$query="select * from gequ where id='$_POST[id]'";//执行查询语句不正确,尝试各种方法如上面获取ID的数据未果来求助$result=mysql_query( $query );
ログイン後にコピー



渡された値は次のとおりです:
id:xxxx
フォーラムの関連投稿を読んでも、変更せずに問題を解決できません。 JS スクリプト、バックグラウンドで値を受け取る方法


ディスカッション (解決策) に返信

dataType: "json" を追加しないでください。
それ以外の場合は、print_r(json_decode($_POST['id' ])) 通常の送信の場合、これは配列です エコーはできません

削除して送信するための ajax 投稿を書きました

 function deleteall(){                var checkboxs = document.getElementsByName("selects");                var ids = new Array();                 for(var i = 0 ; i<checkboxs.length ; i++){                    if(checkboxs[i].checked == true){                        ids[i] = checkboxs[i].value;                    }                }                if(ids.length<1){                    return false;                }                var newids = ids.join(",");                if(confirm("确认删除?")){                    $.ajax({                     type: "POST",                     url: "<?php echo url('autoReply','deleteall')?>",                     data:"id="+newids,                     success: function(e){                        if(e == 1 ){                           for(var i = 0 ; i<checkboxs.length ; i++){                            if(checkboxs[i].checked == true){                                checkboxs[i].checked = false;                            }                            }                           location.reload();                       }else{                          alert("删除失败");                      }                     }                    })                }            }
ログイン後にコピー

また、

$query="select * from gequ where id='$_POST[id]'";
ログイン後にコピー

投稿した ID が int 型の場合は必要ありません一重引用符を追加するには

data:{"id":id},

JS でこの ID にアラートを送信して、値があるかどうかを確認します

<html>    <head>        <title>title</title>        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>        <script>         $(function(){            $("#btn").click(function(){                alert('ok!');                var id = 3;                $.ajax({                    url:"2.php",                    method:"POST",                    dataType:"json",                    data:{id:id},                    success:function(data){                       alert(data.id);                    }                                                        });                            });        });        </script>    </head>    <body>        <input type="button" id="btn" value="button">    </body></html>
ログイン後にコピー


2.php ファイル
<?php$dd['id'] = $_POST['id'];$dd['value'] = 'fff';echo json_encode($dd);?>
ログイン後にコピー


さらに、上の階の人がこう言いましたdataTypeは記述する必要はありません。 以下は公式ドキュメントを引用して説明します。

dataType (デフォルト: Intelligent Guess (xml、json、script、または html))
Type: String
サーバーから返されると予想されるデータのタイプ

送信時に dataType を追加しないでください。通常: "json",
それ以外の場合は、print_r(json_decode($_POST['id'])) する必要があります。これは配列なのでエコーできません



すぐにわかります、json_decode がありません、いいね、私は与えますポイントはあなたです
ちなみに、これとはあまり関係のない質問です

$.ajax({
url: "/music/",
:"json",
成功: function(e){

このように URL が渡されたら、これはどのようなテクノロジーですか?

5 階を確認してみましょう 公式の紹介を見てください: http://api.jquery.ajax/



dataType (デフォルト: Intelligent Guess (xml、json、script、または html))
タイプ: String
サーバーから返されるデータのタイプ 何も指定されていない場合、jQuery はそれに基づいて推論しようとします。応答の MIME タイプ (XML MIME タイプは XML を生成し、1.4 では JSON は JavaScript オブジェクトを生成し、1.4 ではスクリプトが実行され、その他は文字列として返されます)。成功コールバックの最初の引数) は次のとおりです: PE を記述する必要はありません。以下は公式ドキュメントの説明を引用しています。


dataType (デフォルト: Intelligent Guess (xml、json、script、または html))
Type: String

サーバーから返されると予想されるデータのタイプ。

5 階を見てみましょう、

公式の紹介を見てみましょう: http://api.jquery.com/jquery.ajax/

dataType (デフォルト: Intelligent Guess (xml, json、script、または html))
タイプ: String
サーバーから返されるデータのタイプ。何も指定されていない場合、jQuery は応答の MIME タイプ (XML MIME) に基づいて推測しようとします。 type は XML を生成し、1.4 では JSON は JavaScript オブジェクトを生成し、1.4 では script はスクリプトを実行し、それ以外は文字列として返されます。使用可能な型 (および結果は成功コールバックの最初の引数として渡されます)。



あなたは私の意味を誤解しています。dataType を記述する必要があります。私の問題は主に json_decode に関するものです。あなたは正しいです
クロスドメイン値が含まれない場合、私が言った datatype を記述する必要はありません。 transfer または js 配列。/Object は完全に文字列で解決できるため、たとえば、json 形式で渡したい場合は、データ型を追加する必要はありません


また、URL: "/music/" は非常に簡単です。現在のディレクトリの /music/ です
たとえば、www .xxx.com/music/ にアクセスすると、デフォルト ファイルが設定されている場合、デフォルト ファイルに直接アクセスします
たとえば、デフォルト ファイルの場合はindex.phpで、実際にはwww.xxx.com/music/index.phpです
さらに、json_decode()が2つあります。最初のパラメータはjsonです。オブジェクトが必要ない場合は、2番目にtrueを記述してください。 1つ

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート