Home >Backend Development >PHP Tutorial >想在php中输出在js中的数组,但是php中输不出来,求解答

想在php中输出在js中的数组,但是php中输不出来,求解答

WBOY
WBOYOriginal
2016-06-23 13:08:10803browse

<script></script>
<script> <br />$function () <br />{ <br /> $('#btn').click(function (){ <br /> <br /> var checkArray = document.getElementsByName("tj[]"); <br /> var n=0; <br /> var arr=new Array(); <br /> //alert(checkArray); <br /> for (var i =0; i < checkArray.length; i++) <br /> { <br /> if(checkArray[i].checked) <br /> { <br /> //选中的操作 <br /> arr[n]=i; <br /> n++; <br /> <br /> } <br /> <br /> } <br /> var obj = { <br /> <br /> data : JSON.stringify(arr) <br /> <br /> } <br /> $.post('./xueshengxuanke.php',obj).then(function (data){ <br /> console.log(data); <br /> }) <br /> }) <br /> }) <br /></script>
这是js生成数组并且传递

       $data=json_decode($_post['data']);
      echo $data[0];
      echo '
';
      echo $data[1];

     

      
   ?>
这是php接收


回复讨论(解决方案)

$_post['data']  你把这个东西var_dump 打出来 看看是什么样子的 就知道怎么弄了啊 

$_POST 不是 $_post

我试试

$_post['data']  你把这个东西var_dump 打出来 看看是什么样子的 就知道怎么弄了啊 

$_post['data']  你把这个东西var_dump 打出来 看看是什么样子的 就知道怎么弄了啊 



打印出来之后是NULL

$_POST 不是 $_post



改成大写打印出来也是NULL

print_r($_POST);
看看是什么

print_r($_POST);
看看是什么


还是一个空的ARRAY()

你 ajax 没有传过来,有怨不得 php 了

你 ajax 没有传过来,有怨不得 php 了



那是要怎么改呢,JS也是初步接触不太会

你先看看 obj 中是否有值

对了,你不会是在 PhpStorm 中调试吧?

你先看看 obj 中是否有值

对了,你不会是在 PhpStorm 中调试吧?



我不知道是不是data : JSON.stringify(arr); 这句话的问题 这个函数貌似没有被认可
是在sublime中调试
输出obj也没有值

你本来就可以这样用的
$.post('./xueshengxuanke.php', arr).then(function (data){

php 中 print_r($_POST);

你本来就可以这样用的
$.post('./xueshengxuanke.php', arr).then(function (data){

php 中 print_r($_POST);




我这么做了
得到的数组是arr[0]->on 我要的不是on
而是arr[]对应的值

你本来就可以这样用的
$.post('./xueshengxuanke.php', arr).then(function (data){

php 中 print_r($_POST);




Array ( [tj] => Array ( [0] => on [1] => on ) )
这个就是输出的结果 但是我的目的是输出被选复选框所在的行数,而这个行数是存在arr[]这个数组里面的,我要的是arr[]=值而不是on 不知道我描述的清楚吗

            for (var i =0; i             { 
                if(checkArray[i].checked)
                {
                    //选中的操作    
                    arr[n]=i;
                    n++;       
                }
            }
alert(arr) //看到什么

            for (var i =0; i             { 
                if(checkArray[i].checked)
                {
                    //选中的操作    
                    arr[n]=i;
                    n++;       
                }
            }
alert(arr) //看到什么



这样是看不到数组内容的,之前我是用循环让他变成字符串可以输出看到。


不要开玩笑


不要开玩笑



真的没看玩笑 弹不出来窗口
var str = "";

           for(var m = 0; m             {
               
             /str += " " + arr[m];
            

            }
          alert("checked index:"+str);
这样我才能弹出框输出来

Array ( [ tj] => Array ( [0] => on [1] => on ) )
请你如实的反映情况,就你贴出的代码,绝不可能出现 tj 项

Array ( [ tj] => Array ( [0] => on [1] => on ) )
请你如实的反映情况,就你贴出的代码,绝不可能出现 tj 项



<script> <br />//var arr=new array(); <br /> <br />function check() <br />{ <br /> <br /> //console.log(document.getElementsByName("tj[]")); <br /> <br /> var checkArray = document.getElementsByName("tj[]"); <br /> //alert(checkArray); <br /> var arr=[]; <br /> var n=0; <br /> for (var i =0; i < checkArray.length; i++) <br /> { <br /> if(checkArray[i].checked == true) <br /> { <br /> //选中的操作 <br /> <br /> //alert(i); <br /> // document.write(i); <br /> arr[n]=i; <br /> n++; <br /> //console.log("arr[n]"); <br /> <br /> <br /> } <br /> } <br /> <br /> $.post('./xueshengxuanke.php',arr).then(function (data){ <br /> alert(data)}); <br /> <br />} <br /> <br /></script>


   print_r($_POST);
   ?>



这是之后修改过的代码 
第一张图是不选择光点提交
第二张图是点了第一个第二个所显示的数组

没有骗你截图为证啊

的的 js 中有 arr[n]=i;
我要看到你在提交之前 alert(arr) 的截图!
明白吗?

的的 js 中有 arr[n]=i;
我要看到你在提交之前 alert(arr) 的截图!
明白吗?






不好意思啊之前没充分理解你的意思

既然 arr 只有一个元素(5)
那么 php怎么可能输出 Array ( [tj] => Array ( [0] => on [1] => on ) ) 呢?

既然 arr 只有一个元素(5)
那么 php怎么可能输出 Array ( [tj] => Array ( [0] => on [1] => on ) ) 呢?




可能我之前表达不清楚
 如果不点提交按钮 arr数组是不会有数据的

这次我是点了一个复选框 所以输出一个值
如果我点的是两个 输出就是两个值
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn