我有一个带有单选按钮和复选框的表单,想要检索哪些表被选中。表单使用jQuery提交,信息存储在两个变量(目标和差异)中。然后使用$ .ajax()发布这些变量。
我的问题:Firebug告诉我他们已被发布,但我似乎无法使用$ _POST检索它们。实际上,$ _POST返回旧数据。我尝试取消设置($ _ POST)并删除我的浏览器缓存,没有任何效果。我该怎么办?
非常感谢你的帮助!
submit.js:
$(document).ready(function () {
alert('start');
$('#right').on('submit', 'form', function(event) {
var checkboxes = new Array();
$('input[name=target]:checked').each(function(){
checkboxes.push($(this).val());
});
var radio = $('input[name=diff]:radio:checked').val();
$.ajax({
url: 'index.php',
type: 'post',
data: {'targets': checkboxes, 'diffs': radio},
success: function() {
alert("success"); }
});
return false;
});
});
的index.php:
<!DOCTYPE html>
<html lang="en-US">
<head>
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="js/submit.js"></script>
</head>
<body>
<?php
if(isset($_POST['targets'])){
$targets = $_POST['targets'];
echo "targets set";
}
if(isset($_POST['diffs'])){
$diffs = $_POST['diffs'];
echo "diffs set";
}
?>
<div id="right">
<div class="content">
<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="checkbox" name="target" value="Check1">Check1
<input type="checkbox" name="target" value="Check2">Check2
<input type="checkbox" name="target" value="Check3">Check3
<input type="radio" name="diff" value="Radio1">Radio1
<input type="radio" name="diff" value="Radio2">Radio2
</form>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
请改为尝试:
$(document).ready(function () {
$('#right form').on('submit', function(event) {
event.preventDefault();
var checkboxes = $.map($('input[name=target]:checked'), function(el,i){
return el.value;
});
var radio = $('input[name=diff]:radio:checked').val();
$.ajax({
url: 'index.php',
type: 'POST',
data: {targets: checkboxes, diffs: radio}
}).done(function(data) {
alert(data);
$('#content').html(data);
}):
});
});