Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
$.ajax+;邮政+;JSON+;PHP=为什么不工作?_Php_Jquery_Ajax_Json_Jquery Mobile - Fatal编程技术网

$.ajax+;邮政+;JSON+;PHP=为什么不工作?

$.ajax+;邮政+;JSON+;PHP=为什么不工作?,php,jquery,ajax,json,jquery-mobile,Php,Jquery,Ajax,Json,Jquery Mobile,我现在在通过$.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>

我现在在通过$.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 -->

WGBN移动电话
埃斯塔·帕吉纳2号


&抄袭;2013年WGBN软件公司。
要运行此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;
    });
});
$(document).delegate(“#json”,“pageinit”,function()){
$(“.manda”)。单击(函数(e){
$.ajax({
url:“json1.php”,
数据类型:“json”,
数据:{“opc”:“sim”},
成功:功能(数据){
var html=“”;
对于($i=0;$iNome:”+数据[$i]。Nome+”“+数据[$i]。SobreName;
html+=“Cidade:”+数据[$i]。Cidade
html+=“
”; } $(#mostra”).html(html); } }); 返回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返回给clinte

一个重要的细节,如果我在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;
    });
});
$(document).delegate(“#json”,“pageinit”,function()){
$(“.manda”)。单击(函数(e){
$.ajax({
url:“json1.php”,
数据类型:“json”,
/*数据:{“opc”:“sim”}*/
成功:功能(数据){
var html=“”;
对于($i=0;$iNome:”+数据[$i]。Nome+”“+数据[$i]。SobreName;
html+=“Cidade:”+数据[$i]。Cidade
html+=“
”; } $(#mostra”).html(html); } }); 返回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页面中显示

如何让PHP识别通过JSON发送的数据?
这只是一个测试,因为要解决这个问题,我会将$.ajax的完整表单发送到PHP保存在数据库中,本例中的方法论帖子是必不可少的。

尝试这样发送数据-

 data : { opc : 'sim' },
并设置请求类型
POST

type: 'post',
type: 'post',

尝试像这样发送数据-

 data : { opc : 'sim' },
并设置请求类型
POST

type: 'post',
type: 'post',

要将对象作为参数而不是字符串传递:

data : {opc: "sim"},
并将类型设置为POST:


要将对象作为参数而不是字符串传递:

data : {opc: "sim"},
并将类型设置为POST:

你忘了打字了。默认的ajax请求是get。但您正在检查php中的POST


你忘了打字了。默认的ajax请求是get。但是您正在检查php中的POST。

您缺少
type
属性。.ajax的默认类型是
get
,add
type:'post'

$.ajax({
        url : "json1.php",
        type: 'post',
        dataType : "json",
        data : '{"opc":"sim"}',
        success : function(data){

您缺少
类型
属性。.ajax的默认类型是
get
,add
type:'post'

$.ajax({
        url : "json1.php",
        type: 'post',
        dataType : "json",
        data : '{"opc":"sim"}',
        success : function(data){

哇,我不相信是这样!非常感谢你!谢谢@roastedWow,我不相信是这样!非常感谢你!谢谢@roastedWow,我不相信是这样!非常感谢你!谢谢@pxlow,我不相信是这样!非常感谢你!谢谢@pxlow,我不相信是这样!非常感谢你!但也有如何传递参数对象的问题。其他同事在这里作出了回应。非常感谢。哇,我不相信是这样!非常感谢你!但也有如何传递参数对象的问题。其他同事在这里作出了回应。非常感谢。哇,我不相信是这样!非常感谢你!但也有如何传递参数对象的问题。其他同事在这里作出了回应。非常感谢。哇,我不相信是这样!非常感谢你!但也有如何传递参数对象的问题。其他同事在这里作出了回应。非常感谢。