<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
$(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();
});
は、検証のためにprocess_request.jsに渡す、form_page.htmlからの入力フォームデータを取ります。私はseltruckだけを表示し、他のフォームフィールドはform_page.htmlに設定されています。
.jsの検証では、フィールドが入力されているかどうかがチェックされ、入力されていない場合はエラーラベルクラスがform_page.htmlに表示されます。
seltruckフォームフィールドでは、mysqlをクエリして空き状況を確認する必要があります。 do_truck_search.phpスクリプトがうまく動作していますが、do_truck_search.phpの変数 'truck_status'を.ajax呼び出しに戻す方法がわかりません。
「.ajax」コールで戻ると、「continue」またはエラー:ラベル#seltruck_noavail_errorが表示されます。
助けてくださいか?
ありがとうございました!
更新日 - これを動作させることはできませんか? dataType: "text"は.ajaxで動作しますか?何かご意見は?
$.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データ型が信頼できた理由はあると思う:
if (($unixoutdate >= $dbunixoutdate) && ($unixoutdate <= $dbunixindate) && ($dbtruck == $seltruck_final)){
$truck_status = "nopass";
$data2 = array('truck_status' => $truck_status);
echo json_encode($data2);
}
process_request.js
do_truck_search.phpスペース)はPHPスクリプトからエコーされます。 datatype: 'text'と.ajax successコールバックのalert()を使用すると、実際のデータテキストの前に小さい四角形が表示されます。私の汚れた解決策は、データ型:テキストを使用して、次に検索したい実際のデータをsubstrだけ使用することでした。
PHPスクリプトでhi/lowを検索して、エコースペースの原因を調べましたが、見つかりませんでしたか?これを行うには
助けてくれてありがとう!私はPHPで "nopass"をエコーすることができ、dataType: "text"を使ってそれをつかんでいましたが、jsonメソッドがうまく動作しませんでした。上記のアップデートを参照してください.... – dan
jsonメソッドの種類data.truck_statusが間違っているか、まったく表示されていない時間の約1/2のように見えますか?私はアラートを使用しています(データ。truck_status); – dan
ブラウザがdata.truck_statusをキャッシュしている可能性がありますか? PHPで私は($ truck_status ['truck_status'])を解除することを確認してください。 ??ありがとう! – dan