0

$.ajax、json、および PHP を介してデータを送受信する際に問題が発生しています。

私は自分のページJQMを持っています:

<div data-role="page" id="json">

    <div data-role="panel" id="painelMenu">
        <div data-role="content">
            <a href="index.html" data-role="button">Voltar</a>
        </div>
    </div>
    <!-- /panel -->

    <div data-role="header" data-position="fixed">
        <h1>WGBN Mobile</h1>
    </div>
    <!-- /header -->

    <div data-role="content">
        <p>Esta é a página 2.</p>
        <p><a href="#painelMenu" data-role="button">painel</a></p>
        <p><a href="#" data-role="button" class="manda">Manda</a></p>
        <hr>
        <div id="mostra"></div>
    </div>
    <!-- /content -->

    <div data-role="footer" data-position="fixed">
        <h4>&copy; 2013 WGBN Software House.</h4>
    </div>
    <!-- /footer -->
</div>
<!-- /page -->

この JavaScript を実行するには:

$(document).delegate("#json", "pageinit", function() {
    $(".manda").click(function(e) {
        $.ajax({
        url : "json1.php",
        dataType : "json",
        data : '{"opc":"sim"}',
        success : function(data){
            var html = "";

            for($i=0; $i < data.length; $i++){
                html += "<strong>Nome:</strong> "+data[$i].nome +" "+ data[$i].sobreNome;
                html += " <strong>Cidade:</strong> "+data[$i].cidade
                html += "<br />";
            }

            $("#mostra").html(html);
        }
        });
        return false;
    });
});

そして、私のサーバー上のこのPHPスクリプト:

<?php
    if ($_POST['opc'] == "sim"){
        $var = Array(
        array(
            "nome"=>"João",
            "sobreNome"=>"Silva",
            "cidade"=>"Maringá"
        ),
        array(
            "nome"=>"Ana",
            "sobreNome"=>"Rocha",
            "cidade"=>"Londrina"
        ),
        array(
            "nome"=>"Véra",
            "sobreNome"=>"Valério",
            "cidade"=>"Cianorte"
        ));
        echo json_encode($var);
    }
?>

しかし、PHP に送信されたデータを読み取ることができないため、サーバー上でコードを実行し、JSON を clte に返すことができます。

javascrpt で次の行にコメントすると、重要な詳細が表示されます。

$(document).delegate("#json", "pageinit", function() {
    $(".manda").click(function(e) {
        $.ajax({
        url : "json1.php",
        dataType : "json",
        /*data : '{"opc":"sim"}',*/
        success : function(data){
            var html = "";

            for($i=0; $i < data.length; $i++){
                html += "<strong>Nome:</strong> "+data[$i].nome +" "+ data[$i].sobreNome;
                html += " <strong>Cidade:</strong> "+data[$i].cidade
                html += "<br />";
            }

            $("#mostra").html(html);
        }
        });
        return false;
    });
});

そしてPHPのこれらの行:

<?php
    //if ($_POST['opc'] == "sim"){
        $var = Array(
        array(
            "nome"=>"João",
            "sobreNome"=>"Silva",
            "cidade"=>"Maringá"
        ),
        array(
            "nome"=>"Ana",
            "sobreNome"=>"Rocha",
            "cidade"=>"Londrina"
        ),
        array(
            "nome"=>"Véra",
            "sobreNome"=>"Valério",
            "cidade"=>"Cianorte"
        ));
        echo json_encode($var);
    //}
?>

私の通常の返品JQMページに表示されています。

JSON経由で送信されたデータをPHPに認識させるにはどうすればよいですか? これは単なるテストです。これを解決すると、$.ajax の完全なフォームが PHP に送信され、データベースに保存されます。この場合の方法論的な POST は必須です。

4

4 に答える 4

2

このようにデータを送信してみてください-

 data : { opc : 'sim' },

リクエストタイプの設定POST

type: 'post',
于 2013-06-29T21:18:07.053 に答える
2

文字列ではなく、オブジェクトをパラメーターとして渡します。

data : {opc: "sim"},

タイプを POST に設定します。

type: 'post',
于 2013-06-29T21:18:36.693 に答える
1

type属性がありません。.ajax のデフォルトのタイプはget、追加type: 'post'

$.ajax({
        url : "json1.php",
        type: 'post',
        dataType : "json",
        data : '{"opc":"sim"}',
        success : function(data){
于 2013-06-29T21:19:52.890 に答える
0
$.ajax({
type: 'post',
..
.
.
});

タイプを忘れました。デフォルトの ajax リクエストは get です。しかし、php で POST をチェックしています。

于 2013-06-29T21:19:37.260 に答える