使用Ajax方法传资料时
一直以为资料是这样流动的
1.Ajaz方式送资料
2.PHP档解析后依对应逻辑程式回传资料(return)
3.jsp呈现资料的程式
4.show在画面上
##结果并不是!!!!
之前写PHP前用return没出事真的是运气好...
code jsp
function clickbtn(){ $.ajax({ type: "GET", url: "../controller/controller.php", data: {data: "test"}, success: function(data) { console.log(data); }, }) alert("ajax结束"); //Ajax结束 } console.log("OK"); //程式一开式就执行OK
code PHP
<?php$data = $_GET["data"];$arr = ["apple", "banana", "cola", "1", "2", "3"];echo $data; //GET里的参数testecho "<br>1";echo $arr; // array不能echo所以出Array to string conversionecho "<br>3<br>";print_r($arr); echo "<br>2<br>";return $arr; //本来希望return带data 但这是错的(X) 而且程式结束没有echo ENDecho "END";
Network
console
如果return是可行的话,在console是会在2的后面有dataArray
把PHP换一下
<?php$data = $_GET["data"];$arr = ["apple", "banana", "cola", "1", "2", "3"];echo $data; //testecho "<br>2<br>";return $arr; //这边就会结束程式echo "<br>3<br>"; //以下都不执行print_r($arr);echo "END";
所以console只有OK test2
但如果再把rerurn拿掉
<?php$data = $_GET["data"];$arr = ["apple", "banana", "cola", "1", "2", "3"];echo $data; //testecho "<br>2<br>";//return $arr; //注解echo "<br>3<br>"; print_r($arr);echo "END";
即使print出来后,还是会照样echo END 所以要die()来结束
关于rerurn exit die网路上有很多讨论了!只是自己都会忘记,那就来写一篇文章加深印象