求教一道关于jQuery里面$.post和php传递数组的问题!非常急!希望大家能够解答!

angela1993222 2016-04-27 10:14:12
HTML:(checkbox 是循环输出)
<form method="post" action="aaa.php">
<button id='submit'>提交</button>
</form>
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js" type="text/javascript">
//var arr=new array();
$(function()
{
$('#submit').click(function()

{
//console.log(document.getElementsByName("tj[]"));

var checkArray = document.getElementsByName("tj[]");
//alert(checkArray);
var arr=[];
var n=0;
for (var i =0; i < checkArray.length; i++)
{
if(checkArray[i].checked == true)
{
//选中的操作

arr[n]=i;
n++;
}
}
var obj = {

data : JSON.stringify(arr)

}
$.post('./http://localhost/jw/xuanke/aaa.php',obj).then(function (data){alert(data)});


});
});

</script>

——————————————————————————
<?php
header("Content-Type: text/html; charset=utf-8");
session_start();

$data=json_decode($_POST['data']);
var_dump($data);
print_r($_POST);
?>

——————————————————
print_r($_POST); 输出的内容是 Array ( [tj] => Array ( [0] => on [1] => on ) )

$data=json_decode($_POST['data']);
var_dump($data); 输出null

但是在JS中写的数组是有值的 并不是on

求解答!!求解决代码!! 非常感谢大家了!已经困扰好几天了!!
...全文
224 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2016-04-28
  • 打赏
  • 举报
回复
'./http://localhost/jw/xuanke/aaa.php'
  • 打赏
  • 举报
回复
$('#submit').click(function() { //console.log(document.getElementsByName("tj[]")); var checkArray = document.getElementsByName("tj[]"); //alert(checkArray); var arr=[]; var n=0; for (var i =0; i < checkArray.length; i++) { if(checkArray[i].checked == true) { //选中的操作 arr[n]=i; n++; } } var obj = { data : JSON.stringify(arr) } $.post('./http://localhost/jw/xuanke/aaa.php',obj).then(function (data){alert(data)}); return false;///////////////阻止表单提交 });
angela1993222 2016-04-27
  • 打赏
  • 举报
回复
引用 3 楼 jslang 的回复:
你现在是$.post()和表单<form method="post" action="aaa.php">两种同时执行, 表单是刷新页面的,由于刷新页面导致$.post()不能正常执行。 你的数据是用$.post()传递的。刷新的页面aaa.php却是表单的。当然是没有数据了 $.post()是ajax不刷新页面传递数据,php所返回的内容由.then(function (data){alert(data)})方法接收,用alert(data)弹出对话框
去除了form 但是依旧弹不出对话框
天际的海浪 2016-04-27
  • 打赏
  • 举报
回复
你现在是$.post()和表单<form method="post" action="aaa.php">两种同时执行, 表单是刷新页面的,由于刷新页面导致$.post()不能正常执行。 你的数据是用$.post()传递的。刷新的页面aaa.php却是表单的。当然是没有数据了 $.post()是ajax不刷新页面传递数据,php所返回的内容由.then(function (data){alert(data)})方法接收,用alert(data)弹出对话框
angela1993222 2016-04-27
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
既然用了$.post()就不要再用表单了<form method="post" action="aaa.php">
不用表单的话,那么怎么看aaa.php所接收的数据,因为每次刷新aaa.php都是null,这个也是我看论坛上面说的
天际的海浪 2016-04-27
  • 打赏
  • 举报
回复
既然用了$.post()就不要再用表单了<form method="post" action="aaa.php">

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧