我有一个表单,我想提交而不刷新页面,我是AJAX
的新手,虽然我已经管理了这个任务传递一个值我不知道怎么用数组做这个
表单输入(使用while
循环显示)
<input type="hidden" name="user" value="<? echo $user_id; ?>" >
<input type="text" name="reason[][<? echo $row['reasonID']; ?>]"
size="25" value="<? echo $row['reason_name']; ?>"/>
<input type="submit" class="submit" value="Save"/>
脚本
<script type="text/javascript" src="/js/jquery.js"></script>
<script>
$(function() {
$(".submit").click(function() {
var dataString = '????';
$.ajax({
type: "POST",
url: "save_reasons.php",
data: dataString,
success: function(){
alert('yay');
}
});
return false;
});
});
</script>
save_reasons.php
if(isset($_POST['save_reasons'])){
$user_id = $_POST['user'];
foreach($_POST['reason'] as $item=>$value)
{
if(is_array($value)){
foreach($value as $ID=>$reason)
{
$sql = "UPDATE gradeReason SET reason_name = '$reason' WHERE reasonID = $ID";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
}
}
else{
if($value !=''){
$sql = "INSERT INTO gradeReason (reason_userID, category, reason_name) VALUES ($user_id, 'positioning', '$value')";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
}
}
}
}
在做了一些研究后,我认为使用数据字符串是前进的方法,但我不知道如何将它与数组(reason
)和userID(user
)一起使用,然后在PHP
脚本。
答案 0 :(得分:1)
以json发送您的数据。
var myobj = { this: 'that' };
$.ajax({
url: "my.php",
data: JSON.stringify(myobj),
processData: false,
dataType: "json",
success:function(a) { },
error:function() {}
});
在服务器端脚本
<?php
$array = json_decode(file_get_contents("php://input"), true);
?>
答案 1 :(得分:1)
Use jQuery serialize
function to pass your values.
$.ajax({
type: "POST",
url: "save_reasons.php",
data: $('#myForm').serialize(),
success: function(){
alert('yay');
}
});