Php Ajax查询不返回数据

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

我使用jqueryserialize和Ajax捕获表单值,并使用Ajax处理它们,使用json作为数据类型,但没有返回任何值。我尝试了各种方法,试图了解为什么会发生这种情况,但都无济于事。firebug或chrome中没有返回错误。如果有人能检查我的代码并指出我的错误,我将不胜感激。谢谢

html代码

<!--- 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;

?>

代码中的问题是,您正在
序列化
a
DIV
,这是不正确的

解决方案是仅使用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;
 });
....