Php ajax-访问url中设置的变量:

Php ajax-访问url中设置的变量:,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,form_page.html <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="js/process_truck_req.js"></script> <script src="js/jquer

form_page.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="js/process_truck_req.js"></script>
    <script src="js/jquery-1.2.3.pack.js"></script>
    <script src="js/runonload.js"></script>
</head>

<div class="prform" id ="request_form">    
    <form name="truckreq" action="" method="post" class="truckreq_form">
        <label for="seltruck" id="seltruck_label"><font class="whitetext">Select Truck</font></label><br />
        <select name="seltruck" id="seltruck">
            <option value="Select a Truck"> Select a Truck</option>
            <option value="2011+Tacoma">2011 Tacoma</option>
            <option value="2008+Tundra">2008 Tundra</option>
            <option value="2000+Tacoma">2000 Tacoma</option>
        </select><br />
        <label class="error" for="seltruck" id="seltruck_error"><font class="redtext">This field is required.</font></label><br />
        <label class="error" for="seltruck" id="seltruck_noavail_error"><font class="redtext">Not Available on selected Dates.</font></label><br />
    </form>
从form_page.html获取输入表单数据,传递到process_request.js进行验证。我只显示seltruck,其他表单字段在form_page.html中设置

在.js验证时,将检查字段是否已填写,如果未填写,则错误标签类将显示在form_page.html上

seltruck表单字段要求查询并检查mysql的可用性。我的do_truck_search.php脚本工作得很好,但不知道如何将“truck_status”变量从do_truck_search.php传递回.ajax调用

回到.ajax调用后,我希望成功:“继续”或错误:显示标签#selcruck_noavail_error

有什么帮助吗

谢谢

更新-无法使其正常工作?数据类型:ajax中的“文本”可以工作吗?有什么想法吗

do_truck_search.php

if (($unixoutdate >= $dbunixoutdate) && ($unixoutdate <= $dbunixindate) && ($dbtruck == $seltruck_final)){
    $truck_status = "nopass";
    $data2 = array('truck_status' => $truck_status);
    echo json_encode($data2);
}
更新

我认为json数据类型不可靠的原因是因为PHP脚本中有一个小正方形(可能是空格)。在.ajax成功回调中使用datatype:'text'和alert()显示实际数据文本之前的小正方形。我最糟糕的解决方案是使用datatype:text,然后只替换我想要检索的实际数据


我在PHP脚本中搜索了hi/low以查找回声空间的原因,但没有找到它???

一种可能的方法:

  • $.ajax
    中设置
    数据类型:“json”
  • 在PHP脚本
    echo json_encode(数组(“truck_status”=>$truck_status))。请注意,必须没有其他输出(因此禁用布局、视图等)
  • success:function(){…}
    更改为
    success:function(数据、状态){…}
    ;现在,变量
    data
    将包含键
    truck\u status
    ,以及您将其设置为的内容。因此,请使用
    data.truck\u status
    访问它

  • 谢谢你的帮助!我能够在PHP中回显“nopass”,并在.ajax调用中使用数据类型:“text”获取它,但从来没有让json方法工作过,请参见上面的更新……我让json方法工作了,似乎大约有1/2的时间data.truck_状态不正确,或者根本没有显示?我正在使用警报(data.truck\u status);浏览器是否可以缓存data.truck\u状态?在PHP中,我确保取消设置($truck_status['truck_status'])??谢谢
    if (($unixoutdate >= $dbunixoutdate) && ($unixoutdate <= $dbunixindate) && ($dbtruck == $seltruck_final)){
        $truck_status = "nopass";
        $data2 = array('truck_status' => $truck_status);
        echo json_encode($data2);
    }
    
    $.ajax({
      type: "POST",
      url: "do_truck_search.php",
      data: truckString,
      dataType: "json",
      success: function(data) {
          if (data.truck_status == "nopass"){
              $("label#seltruck_noavail_error").show();
          }
        }
    });