Php ajax-访问url中设置的变量:
form_page.htmlPhp 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
<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”
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();
}
}
});