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>
process_request.js
$(function() {
$('.error').hide();
$('input.text-input').css({backgroundColor:"#FFFFFF"});
$('input.text-input').focus(function(){
$(this).css({backgroundColor:"#FFDDAA"});
});
$('input.radio-input').focus(function(){
$(this).css({backgroundColor:"#FFDDAA"});
});
$('input.text-input').blur(function(){
$(this).css({backgroundColor:"#FFFFFF"});
});
$(".button").click(function() {
// validate and process form
// first hide any error messages
$('.error').hide();
var seltruck = $("#seltruck").val();
if (seltruck == "Select a Truck") {
$("label#seltruck_error").show();
$("#seltruck").focus();
return false;
}
var truckSearch = 'seltruck=' + seltruck + '&outdate=' + outdate + '&indate=' + indate;
$.ajax({
type: "POST",
url: "do_truck_search.php",
data: truckSearch,
success: function() {
var truck_status = $("#truck_status").val();
if (truck_status == "nopass") {
$("label#seltruck_noavail_error").show();
$("#seltruck").focus();
return false;
}
}
});
});
});
runOnLoad(function() {
$("input#projdesc").select().focus();
});
採取從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調用,我想要成功:'繼續'或錯誤:顯示標籤#seltruck_noavail_error。
有幫助嗎?
謝謝!
UPDATE - 不能得到這個工作? dataType:.ajax中的「text」可以工作嗎?有什麼想法嗎?
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);
}
process_request.js:
$.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();
}
}
});
UPDATE
我覺得爲什麼JSON數據類型是不可靠的原因是因爲一個小廣場(可能是空間)從PHP腳本回顯。使用數據類型:'text'和.ajax成功回調中的alert()顯示實際數據文本之前的小方塊。我的骯髒的解決方案是使用數據類型:文本,然後substr我想要檢索的實際數據。
我在PHP腳本中搜索hi/low來查找echo'd空間的原因,但是找不到它?
感謝您的幫助!我能夠在PHP中回顯「nopass」,並在.ajax調用中使用dataType:「text」來獲取它,但從未得到過json方法的工作,請參閱上面的更新.... – dan 2012-01-10 13:39:10
我得到了json方法的工作,似乎是data.truck_status不正確或根本不顯示的時間的1/2左右?我正在使用警報(數據。truck_status); – dan 2012-01-12 17:33:59
瀏覽器能否緩存data.truck_status?在PHP中,我確保未設置($ truck_status ['truck_status']); ??謝謝! – dan 2012-01-12 17:34:59