Home >Backend Development >PHP Tutorial >javascript - $.get发送数据给PHP页面但是收不到?
JS代码
<code>$.get("test.php",{ Xiaopeng : $("#selectbtn1").text() },function(data,textStatus){ $("#right-table").load("test.php"); })</code>
HTML代码
<code><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></code>
PHP代码
<code><?php print_r($_GET); ?> </code>
①结果只能得到一个空数组 Array()
这是为什么?求解惑
②我还想问一下name这个属性在$.get这种提交方法中到底起到什么作用
?
JS代码
<code>$.get("test.php",{ Xiaopeng : $("#selectbtn1").text() },function(data,textStatus){ $("#right-table").load("test.php"); })</code>
HTML代码
<code><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></code>
PHP代码
<code><?php print_r($_GET); ?> </code>
①结果只能得到一个空数组 Array()
这是为什么?求解惑
②我还想问一下name这个属性在$.get这种提交方法中到底起到什么作用
?
思路不对,或者说你没好好看文档,没有正确理解$.get 和 $(element).load方法。
<code>$.get('test.php', {Xiaopeng: 'text'}, function(data){ console.log(data); }); </code>
这个时候实际请求地址为test.php?Xiaopeng=text,而返回的data并不是空的,但是
<code>$("#right-table").load("test.php");</code>
这句的意思是获取test.php的返回内容并放入#right-table,此时Xiaopeng=text这个参数并不存在,所以只能得到空数组。
以下两种方式都是正解:
<code>//方法1 $.get('test.php', {Xiaopeng: 'text'}, function(data){ $("#right-table").html(data); }); //方法2 $("#right-table").load('test.php?Xiaopeng=' + $("#selectbtn1").text());</code>
建议使用Firefox(需要firebug插件)或chrome浏览器,使用相应的功能可以检测ajax请求,你会发现你原先的代码是发送了两次不同的请求,而你输出的第二次请求的返回值,同时第二次请求确实没有任何数据被发送。
<code><button class="btn btn-default selectbtn" type="button" id="selectbtn1" name="Xiaopeng">Xiaopeng</button></code>
把Xiaopeng放到class里
<code><button class="btn btn-default selectbtn Xiaopeng" type="button" id="selectbtn1">Xiaopeng</button></code>
然后这样获取
<code>$(".Xiaopeng").text()</code>
总觉得你这种实现方式很奇怪,你可以描述下你的需求再想办法解决,梳理清楚吧
alert或console.log()一下$("#selectbtn1").text(),看看有没有正确获取到值