我想弄清楚为什么这不起作用。这是我的表单的子集,如下所示:
<input type="hidden" id="gift_id3" name="giver3gift_id" value="925"></td>
<tr id="tr3">
<td>
<select class="type" id="type3" name="giver3paymenttype_val">
<option value="1" SELECTED>Check</option>
<option value="2">Cash</option>
<option value="3">ACH</option>
<option value="4">In Kind Donation</option>
</select>
</td>
<td><input type="text" class="refnum" id="refnum3" name="giver3ref_num" value="2147483647"></td>
<td><input type="text" class="amount" id="amount3" name="giver3amount" value="25.00" onBlur="this.value=formatCurrency(this.value)"></td>
<td>
<select class="type" id="type3" name="giver3taracct_val">
<option value="1" SELECTED>General Fund</option>
<option value="2">Building Fund</option>
<option value="3">Missions Fund</option>
</select>
</td>
<td><input type="checkbox" id="void3" name="giver3void">
</tr>
这是我的AJAX:
var $inputs = $("#dialog-editgiving :input");
var parameters = [];
$inputs.each(function() {
parameters[this.name] = $(this).val();
});
$.ajax({
url : "./scripts/form_process/update_giving.php",
type: "POST",
data : {parameters:parameters},
success: function(data, textStatus, jqXHR)
{
alert(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert(errorThrown);
}
});
这是我的update_giving.php文件
<?php
foreach ($_POST as $key => $value) {
echo "Field ".htmlspecialchars($key)." is ".htmlspecialchars($value)."<br>";
}
?>
当我浏览$ inputs数组时,我得到了表单中提交的值。然后它被移交给“./scripts/form_process/update_giving.php”脚本,我在POST对象中什么都没有。
我的AJAX请求中有不正确的内容吗?
答案 0 :(得分:0)
而不是此代码
var $inputs = $("#dialog-editgiving :input");
var parameters = [];
$inputs.each(function() {
parameters[this.name] = $(this).val();
});
使用
var paramerter = $( '#dialog-editgiving' ).serialize();
用于从表单中获取所有输入..
并在正常的php函数中以yoy fetch的形式获取update_giving.php文件中的数据 例如
$_POST['giver3taracct_val'];
我希望这段代码可以帮到你。
答案 1 :(得分:0)
尝试在表单提交时执行代码,并使用serialize()
尝试这样的事情:
$('form').submit(function(e){
e.preventDefault();
var data = $(this).serialize();
$.ajax({
url : "./scripts/form_process/update_giving.php",
type: "POST",
data : data,
success: function(data, textStatus, jqXHR)
{
alert(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert(errorThrown);
}
});
答案 2 :(得分:0)
使用注册页面
<script>
function my_user(user_name){
var dataString = 'user_name='+ user_name +'&tbl_name='+ tbl_name+'&valid_user='+ valid_user;
$.ajax({
type: "POST",
url: "user_ajax.php",
data: dataString,
cache: false,
success: function(data) {
if(data == 1){
$("#user_exits").html("User Name Already Exist!");
$('#btn_submit').addClass("disabled");
//$("#user").focus();
}
else if(data == 0){
$("#user_exits").addClass("hide");
$('#btn_submit').removeClass("disabled");
}
}
});
}
</script>
<input required type="text" class="form-control" placeholder="User Name *" id="user" name="v_user_name" onblur="my_user(this.value)" value="<?php echo $user_name; ?>" autofocus >
//user_ajax.php
<?php
$page_no=$_POST['page_no'];
$tbl_name=$_POST['tbl_name'];
if($tbl_name=='tbl_user' && $_POST['user_name']!='' && $_POST['valid_user']=='user_exit'){
$sql_user = "SELECT * FROM tbl_user WHERE v_user_name='".$_POST['user_name']."' ";
$rsd_user = mysql_query($sql_user);
$sql_user_exist = "SELECT * FROM tbl_user WHERE id ='".$_SESSION['usr_id']."' ";
$rsd_exist_user = mysql_query($sql_user_exist);
$row_user=mysql_fetch_array($rsd_exist_user);
if($row_user['v_user_name']==$_POST['user_name']){
echo $msg_user=0;
}
else{
$msg_user = mysql_num_rows($rsd_user); //returns 0 if not already exist
echo $msg_user;
}
}
?>
答案 3 :(得分:0)
在Rubby Smith的评论的帮助下。我能够使这个代码工作。谢谢大家。
var parameters = $("#dialog-editgiving :input").serialize();
$.ajax({
url : "./scripts/form_process/update_giving.php",
type: "POST",
data : {parameters:parameters},
success: function(data, textStatus, jqXHR)
{
alert(data);
},
error: function(jqXHR, textStatus, errorThrown)
{
alert(errorThrown);
}
});
在PHP脚本中使用以下内容。
$params = array();
$form_fields = array_keys($HTTP_POST_VARS);
for ($i = 0; $i < sizeof($form_fields); $i++) {
parse_str($HTTP_POST_VARS[$form_fields[$i]], $params);
}