开发者社区> 问答> 正文

$.get发送数据给PHP页面但是收不到?

JS代码

$.get("test.php",{
    Xiaopeng : $("#selectbtn1").text()
  },function(data,textStatus){
    $("#right-table").load("test.php");                                                                     
  })

HTML代码

<form action="#" method="get">
      <button class="btn btn-default selectbtn" type="button" id="selectbtn1" name="Xiaopeng">Xiaopeng</button>
      <button class="btn btn-default selectbtn" type="button"id="selectbtn2">Dogwei</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn3">Zhukai</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn4">Xiaozhi</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn5">Qiqi</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn6">Xiaoyun</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn7">Naizhuo</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn8">Fengfeng</button>
      <br><br>
      <p>Loser</p>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-1">Xiaopeng</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-2">Dogwei</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-3">Zhukai</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-4">Xiaozhi</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-5">Qiqi</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-6">Xiaoyun</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-7">Naizhuo</button>
      <button class="btn btn-default selectbtn" type="button" id="selectbtn-8">Fengfeng</button>
      <br><br><br>
      <button class="btn btn-default" type="submit" id="tijiao">SubmiT!</button>
      </form>

PHP代码

<?php 

print_r($_GET);
 ?>

①结果只能得到一个空数组 Array()
这是为什么?求解惑

②我还想问一下name这个属性在$.get这种提交方法中到底起到什么作用

展开
收起
杨冬芳 2016-06-23 13:36:09 2227 0
1 条回答
写回答
取消 提交回答
  • 码农|Coder| Pythonista

    思路不对,或者说你没好好看文档,没有正确理解$.get $(element).load方法。

    $.get('test.php', {Xiaopeng: 'text'}, function(data){
        console.log(data); 
    }); 

    这个时候实际请求地址为test.php?Xiaopeng=text,而返回的data并不是空的,但是
    `
    $("#right-table").load("test.php");`
    这句的意思是获取test.php的返回内容并放入#right-table,此时Xiaopeng=text这个参数并不存在,所以只能得到空数组。
    以下两种方式都是正解:

    //方法1
    $.get('test.php', {Xiaopeng: 'text'}, function(data){
        $("#right-table").html(data); 
    }); 
    //方法2
    $("#right-table").load('test.php?Xiaopeng=' + $("#selectbtn1").text());

    建议使用Firefox(需要firebug插件)或chrome浏览器,使用相应的功能可以检测ajax请求,你会发现你原先的代码是发送了两次不同的请求,而你输出的第二次请求的返回值,同时第二次请求确实没有任何数据被发送。

    2019-07-17 19:46:10
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
相关产品:
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-直面PHP微服务架构挑战-高驰涛 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载