Php Ajax查询不返回数据
我使用jqueryserialize和Ajax捕获表单值,并使用Ajax处理它们,使用json作为数据类型,但没有返回任何值。我尝试了各种方法,试图了解为什么会发生这种情况,但都无济于事。firebug或chrome中没有返回错误。如果有人能检查我的代码并指出我的错误,我将不胜感激。谢谢 html代码Php Ajax查询不返回数据,php,jquery,ajax,Php,Jquery,Ajax,我使用jqueryserialize和Ajax捕获表单值,并使用Ajax处理它们,使用json作为数据类型,但没有返回任何值。我尝试了各种方法,试图了解为什么会发生这种情况,但都无济于事。firebug或chrome中没有返回错误。如果有人能检查我的代码并指出我的错误,我将不胜感激。谢谢 html代码 <!--- Form to add box --> <div id="boxaddform" style="display:none;"> <div cla
<!--- Form to add box -->
<div id="boxaddform" style="display:none;">
<div class="dialogTop_padd"></div>
<form id="BA_boxform" name="BA_boxform" method="post">
<fieldset>
<legend><span></span>Select Company</legend>
<div class="spacer"></div>
<div class="formMessage">Click again to open</div>
<div class="fld_fld">
<div>
<label for="BA_customer">Company:</label><br />
<select name="BA_customer" id="BA_customer">
<option SELECTED VALUE="">Select a Company</option>
<?php
do {
?>
<option value="<?php echo $row_Recordsetcust['customer']?>"><?php echo $row_Recordsetcust['customer']?></option>
<?php
}
while ($row_Recordsetcust = mysql_fetch_assoc($Recordsetcust));
$rows = mysql_num_rows($Recordsetcust);
if($rows > 0)
{
mysql_data_seek($Recordsetcust, 0);
$row_Recordsetcust = mysql_fetch_assoc($Recordsetcust);
}
?>
</select>
<div class="spacer"></div>
<!--- displays the address and dept from the change function -->
<div id="BA_dept"></div>
<br />
<div id="BA_address"></div>
</div>
</fieldset>
<div class="dialogTop_padd"></div>
<!--- fieldset for service level -->
<fieldset>
<legend>Service Level</legend>
<div class="spacer"></div>
<div>
<label for="BA_service">Service level:</label>
<select name="BA_service" id="BA_service">
<option SELECTED VALUE="">Select an option</option>
<option value="Standard">Standard</option>
<option value="Rapid">Rapid</option>
</select><br />
</div>
</fieldset>
<div class="dialogTop_padd"></div>
<!--- fieldset for box # -->
<fieldset>
<legend>Box Details</legend>
<div class="spacer"></div>
<div>
<label for="BA_box">Box#:</label><br />
<input id="BA_box" name="BA_box" type="text" size="32" maxlength="128" value = "" /><br />
</div>
<div>
<label for="BA_destdate">Destroy date:</label>
<input id="BA_destdate" name="BA_destdate" type="text" size="32" maxlength="128" value = "" /><br />
</div>
</fieldset>
<div class="dialogTop_padd"></div>
<!--- fieldset for authorisation -->
<fieldset>
<legend>Authorisation</legend>
<div class="spacer"></div>
<div>
<label for="BA_authorised">Requested By:</label>
<input id="BA_authorised" name="BA_authorised" type="text" value="<?php echo $_SESSION['kt_name_usr']; ?>"><br />
</div>
</fieldset>
<!--- div to show callback result from ajax via dialog -->
<div id="BA_addbox"></div>
<br />
<input type="submit" name="submit" value="Submit Intake" />
<input type="reset" name="cancel" value="Clear Form" />
<!--- buttons to submit form and reset form to default status -->
<!-- <button id="BA_submit" class="submitbutton icon-right ui-state-default2 ui-corner-all"><span class="ui-icon ui-icon-circle-plus"></span>Add Box</button>
<button type="reset" id="BA_reset" class="resetbutton icon-right ui-state-default2 ui-corner-all"><span class="ui-icon ui-icon-circle-plus"></span>Reset</button>
--><br />
</form>
</div>
}))
//开始函数以提交箱子入口表单
$(function(){//要添加的函数框
$(“#boxaddform”)。对话框({
自动打开:错误,
可调整大小:false,
莫代尔:是的,
标题:“提交一个箱子入口请求”,
宽度:550,
身高:400,
beforeclose:函数(事件、ui){
$(“#BA#u addbox”).html(“”);
$(“#本科系”)隐藏();
$(“#地址”).hide();
},
关闭:功能(事件、用户界面){
//$(“#BA#u boxform”).get(0.reset();
$(“#BA#u addbox”).html(“”);
}
});
});
$(函数(){
$(“#boxaddform”).submit(函数(){
var formdata=$(this.serialize();
$.ajax({
类型:“POST”,
url:“/domain/admin/requests/box/boxesadd.php”,
数据:formdata,
数据类型:“json”,
成功:功能(msg){
//$(“确认部门”).hide();
/*
变量$dialog=$('')
.html('您的摄入量已成功提交,将在报告区域中查看。
谢谢。');
$dialog.dialog({
自动打开:对,
莫代尔:是的,
标题:“收件箱接收提交成功”,
宽度:400,
身高:200,
可拖动:错误,
可调整大小:false,
按钮:{
关闭:函数(){
$(此).dialog(“关闭”);
}
}
});
*/
//警报('您已成功提交'+msg.company+'报告。谢谢');
//控制台日志(msg);
//$(“#BA#u addbox”).html(“您现在可以关闭此窗口。”);
//$(“#formImage.col_1 li”).show();
$(“#BA#u boxform”).get(0.reset();
$(“#boxaddform”).hide();
}
});
返回false;
});
});
//结束函数以提交箱子入口表格
php代码
<?php
$dept = mysql_real_escape_string($_POST['BA_dept']);
$company = mysql_real_escape_string($_POST['BA_customer']);
$address = mysql_real_escape_string($_POST['BA_address']);
$service = mysql_real_escape_string($_POST['BA_service']);
$box = mysql_real_escape_string($_POST['BA_box']);
$destroydate = mysql_real_escape_string($_POST['BA_destdate']);
$authorised = mysql_real_escape_string($_POST['BA_authorised']);
$form = array('dept'=>$dept, 'company'=>$company, 'address'=>$address, 'service'=>$service, 'box'=>$box, 'destroydate'=>$destroydate, 'authorised'=>$authorised);
$result = json_encode($form);
echo $result;
?>
代码中的问题是,您正在
序列化aDIV
,这是不正确的
解决方案是仅使用Javascript代码序列化DIV
中包含的表单,如:
...
$(function(){
$("#boxaddform").submit(function(){
var formdata = $('#BA_boxform').serialize();
$.ajax({
type: "POST",
url: "/domain/admin/requests/boxes/boxesadd.php",
data: formdata,
dataType: 'json',
success: function(msg){
...
}
});
return false;
});
....
另外,请记住,serialize
只关心INPUT
、SELECT
和TEXTAREA
控件,就像正常表单提交一样()。您尝试过在服务器上写一些日志吗?我的意思是:你确定PHP脚本正在接收查询吗?@Oscar当我查看firebug中发布的值时,它们是空的。他们并没有得到像php那样的好成绩。我只是觉得这很有趣。这是boxesadd.php{“dept”:“company”:“address”:“service”:“box”:“destroydate”:“authorized”:“}我知道这听起来很傻,但你能添加一个警报(formdata)吗在调用$.ajax
之前执行code>?它是否显示了预期结果?我认为您将事件附加到了错误的对象。。。提交应该在表格上,而不是分区上。。。这可能是问题吗?@Oscar警告是空白的/空白的。Oscar很努力,但问题很简单,但用复杂的方式表示
<?php
$dept = mysql_real_escape_string($_POST['BA_dept']);
$company = mysql_real_escape_string($_POST['BA_customer']);
$address = mysql_real_escape_string($_POST['BA_address']);
$service = mysql_real_escape_string($_POST['BA_service']);
$box = mysql_real_escape_string($_POST['BA_box']);
$destroydate = mysql_real_escape_string($_POST['BA_destdate']);
$authorised = mysql_real_escape_string($_POST['BA_authorised']);
$form = array('dept'=>$dept, 'company'=>$company, 'address'=>$address, 'service'=>$service, 'box'=>$box, 'destroydate'=>$destroydate, 'authorised'=>$authorised);
$result = json_encode($form);
echo $result;
?>
...
$(function(){
$("#boxaddform").submit(function(){
var formdata = $('#BA_boxform').serialize();
$.ajax({
type: "POST",
url: "/domain/admin/requests/boxes/boxesadd.php",
data: formdata,
dataType: 'json',
success: function(msg){
...
}
});
return false;
});
....