我遇到了問題jQuery和AJAX。 我有3個選擇標籤,其值通過AJAX填充。jQuery/AJAX自動填充值
這是我需要的情況。
當我在第一個選擇標籤上選擇選項時,我在第二個選擇標籤中獲得特定值。 然後,當我在第二個標籤上選擇選項時,我在第三個選擇標籤中獲得特定值。 在第三個選擇標籤中選擇選項後 - 發生提交。 這部分工作。
當然在提交一切後重置。我不希望這樣,所以我把選擇標籤放入選擇標籤中。現在我不知道如何「直播」從第一個和第二個選擇標籤讀取,以便在提交選項保持填充。
這裏是我的代碼PHP/HTML代碼:
<form action="<?php echo $PHP_SELF; ?>" method="POST" name="userVideos" id="userVideos" style="width: 580px; margin-left: 5px; margin-bottom: 2px;">
<select name="brand_select" id="brand_select" style="width: 140px; margin-right: 20px;">
<option value="">Select Brand</option>
<?php
$query_brands = mysql_query("SELECT DISTINCT brand FROM users_video WHERE location = '2' ORDER BY brand");
while ($row = mysql_fetch_object($query_brands))
{
$name = $row->brand;
$sel = ($_POST['brand_name'] == $name) ? "selected='selected'" : "";
echo "<option value='{$row->brand}' $sel>{$row->brand}</option>";
}
?>
</select>
<input type="hidden" value="<?php echo htmlspecialchars($_POST['brand_select']); ?>" name="brand_name" id="brand_name"/>
<select name="series_select" id="series_select" style="width: 140px; margin-right: 20px;" disabled>
<option value="">Select Series</option>
<?php
//TODO: finish code tidification
$sel = ($_POST['series_name'] != "") ? "selected='selected'" : "";
echo "<option value='" . htmlspecialchars($_POST['series_name']) . "' $sel>" . htmlspecialchars($_POST['series_name']) . "</option>";
?>
</select>
<input type="hidden" value="" name="series_name" id="series_name"/>
<select name="model_select" id="model_select" style="width: 140px; margin-right: 20px;" disabled>
<option value="">Select Model</option>
<?php
$sel = ($_POST['model_name'] != "") ? "selected='selected'" : "";
echo "<option value='" . htmlspecialchars($_POST['model_name'] != "") . "' $sel>" . htmlspecialchars($_POST['model_name']) . "</option>";
?>
</select>
<input type="hidden" value="" name="model_name" id="model_name"/>
</form>
這裏是我的jQuery 代碼:
jQuery(document).ready(function(){
var brand = "";
var series = "";
var model = "";
var _brand = "";
_brand = $('#brand_name').val();
$("#brand_select").live("change", function(){
brand = $('select#brand_select').val();
if (brand == "" && _brand == "")
{
$('select#series_select').attr('disabled','disabled');
$('#model_select').attr('disabled','disabled');
}
else
{
$('select#series_select').removeAttr('disabled');
$('#brand_name').val(brand);
var grbData = $.ajax({
type: "GET",
url: "series.php",
data: "brand=" + brand,
success: function(html){
$("#series_select").html(html);
}
});
}
});
$("#series_select").change(function(){
series = $('select#series_select').val();
if (series != ""){
$('#model_select').removeAttr('disabled');
$('#series_name').val(series);
var newData = $.ajax({
type: "GET",
url: "model.php",
data: "brand=" + brand + "&series=" + series,
success: function(html){
$("#model_select").html(html);
}
});
}else{
$('#model_select').attr('disabled','disabled');
}
});
$("#model_select").change(function(){
model = $('select#model_select').val();
if (model != ""){
$('#model_name').val(model);
$('#userVideos').submit();
}
});
讓後備人員填入值。當支持人員知道所選內容時,無需讓客戶填寫它們 – epascarello 2012-07-24 23:58:35
您可以詳細說明一下或給我舉一些例子嗎?謝謝。 – dergotic 2012-07-25 00:00:05
太雜亂,太多不相關的代碼。請儘量清理你的代碼,以便說明你想要的東西。這有助於他人分析問題(而不是花費大量時間來了解不相關的事情)並回答實際問題。哎呀,通過解決問題,你甚至可以自己找到解決方案(自己有一個洞察力)。 – Styxxy 2012-07-25 00:01:50