我有代碼,當頁面加載時,調用mysql和填充數據的select
元素。這可以在初始加載或刷新頁面時正常工作,但我試圖做的是,當我從ajax獲得成功回調時,將使用新數據更新或重新填充select
元素。jQuery加載不填充選擇元素
我可以看到數據正從瓢蟲中的ajax返回,但由於某種原因,未填充select
元素。如果有人能發現我已經搞砸了,我將不勝感激。非常感謝。
PHP/HTML代碼
<div class="fieldset">
<h1><span>Select Your Box(es)</span></h1>
<p>
<select data-placeholder="Choose your box(es)..." class="chosen-select" name="box_frtv[]" id="box_frtv" multiple required="required">
<option value=""></option>
<?php
do {
?>
<option value="<?php echo $row_rs_fbrtv['boxref']; ?>"><?php echo $row_rs_fbrtv['boxref']; ?></option>
<?php
} while ($row_rs_fbrtv = mysql_fetch_assoc($rs_fbrtv));
$rows = mysql_num_rows($rs_fbrtv);
if($rows > 0) {
mysql_data_seek($rs_fbrtv, 0);
$row_rs_fbrtv = mysql_fetch_assoc($rs_fbrtv);
}
?>
</select><span></span><div id="boxError"></div>
</p>
</div>
jQuery代碼
submitHandler: function()
{
if ($("#USRfilertv").valid() === true)
{
var data = $("#USRfilertv").serialize();
$.ajax(
{
type: "POST",
url: "frtv.php",
data: data,
dataType: "json",
success: function (data)
{
if (data.opp == 'error')
{
var messageOutput = '';
for (var i = 0; i < data.length; i++)
{
messageOutput += data[i].file + ' ';
}
notif({
msg: "There was an error retrieving the following file: " + '<br /><br />' + '<b><font color=\"black\">' + data.file + '</font></b><br /><br />' + ' Please correct this error and try again.<br />If this error persists, please contact us quoting ref: ' + '<b><font color=\"#fbf66a\">' + '#FRTV0001.<br />' + '</font>' + '<br />' + 'Thank you.',
type: "frtvError",
position: "center",
width: 490,
height: 75,
multiline: true,
timeout: 6000,
opacity: 0.8,
fade: 10,
});
}
else
{
var messageOutputs = '';
for (var i = 0; i < data.length; i++)
{
messageOutputs += data[i].file + ' ';
}
$("#USRfilertv").get(0).reset();
$("#box_frtv").load("refreshFrtv.php");
$("#frtv_address").trigger("chosen:updated");
notif({
msg: "You have successfully retrieved the following file(s)." + '<br /><br />' + '<b><font color=\"black\">' + data.file + '</font></b><br /><br />' + ' These file(s) were successfully entered into the database.<br />Thank you.',
type: "FileRtvSuccess",
position: "center",
width: 440,
height: 75,
multiline: true,
timeout: 6000,
opacity: 0.8,
fade: 10,
});
$("#box_frtv_chosen").find('option:selected').remove();
$("#box_frtv").html('');
$("#box_frtv").trigger("chosen:updated");
$("#box_ffrtv_chosen").find('option:selected').remove();
$("#box_ffrtv").html('');
$("#box_ffrtv").trigger("chosen:updated");
}
}
});
}
}
也許您的網頁緩存。我有一個類似的問題,我解決了在我的ajax調用中添加一個帶有當前日期時間的新變量。我不知道它是否能解決你的問題。 – 2014-09-25 09:14:53
使用.class代替#id作爲選擇器...典型錯誤 – pirs 2014-09-25 09:16:21
@Andrea能否擴展您的答案請。謝謝 – user1532468 2014-09-25 09:25:40