如何设置通过 AJAX 从另一个页面调用的下拉列表的默认值?
Posted
技术标签:
【中文标题】如何设置通过 AJAX 从另一个页面调用的下拉列表的默认值?【英文标题】:How do you set the default value of a drop down list that is being called via AJAX from another page? 【发布时间】:2011-08-22 03:08:25 【问题描述】:对于我的代码,我的下拉列表是在原始页面上启动的,通过
<select name =country id=country
onchange=showRecords(this.value,'country','province')>"
此函数获取值,将其等同于国家/地区,然后查询 mysql,并将结果设置为 id=province,并创建级联下拉列表。这显然是通过 Ajax 实现的。
因此,当 $_REQUEST['province'] 设置时,省下拉列表将填充其所属国家/地区的所有省份等;即;
<?if(isset($province))
echo "<script>showRecords('".$country."','country','province');</script>";?>
但是,在我的一生中,我无法弄清楚如何将默认值设置为等于 $_REQUEST['province']。我不能使用传统方式:
if (($selected) == ($value))
$options.= " selected";
因为它一次用一条信息查询 AJAX 页面。
任何想法都将不胜感激。
【问题讨论】:
function setDefault(idx,val) document.getElementById(idx).value = val 也不起作用,因为所有信息都是从不同的页面存储的... 你能把所有的 html 代码特别用于下拉/选择(国家和省)。这只是为了解决问题。因为我认为问题出在逻辑上, 【参考方案1】:您的代码似乎没有多大意义。让我担心的特别是你说 ajax 一次加载一个项目?
也许是这样的。国家/地区选择标签,例如...
<select onchange="showRecords(this)">
除了创建 javascript 函数 showRecords() 之外,当有人在 select 标记中选择一个选项时将调用该函数。
<script>
function showRecords(calling_element)
// do AJAX call here using calling_element.options[calling_element.selectedIndex].value as the selected country. this.value does not work for select tags.
</script>
接收此 AJAX 请求的 php 页面将使用包含所有省份值或分隔列表的 JSON 对象进行回复。
一旦 Javascript showRecords 函数接收到来自 PHP 页面的响应,它会将这些选项中的每一个添加到正确的选择标记中。完成后,它将通过以下方式将默认值设置为所需的任何选项:
target_element.selectedIndex = desired list index here;
【讨论】:
【参考方案2】:我对你的问题有很多假设,
首先是,如果默认情况下你有这样的选择省
<select id="province">
<option value=""></option>
<option value="California">California</option>
<option value="Washington">Washingthon</option>
</select>
那么你可以使用这个脚本来默认选择
document.getElementById("province").value="Washington";
但如果默认情况下你有这样的选择省
<select id="province"></select>
那么你可以使用这个脚本来默认选择
document.getElementById("province").innerHTML='<option value="Wahsington">Washington</option>';
所以这取决于您的代码和您的需要。也许如果你有其他情况,问题应该以另一种方式解决。
cmiiw :)
【讨论】:
我认为这是最好的,无需求助于疯狂的复杂代码:)以上是关于如何设置通过 AJAX 从另一个页面调用的下拉列表的默认值?的主要内容,如果未能解决你的问题,请参考以下文章
html 使用AJAX POST请求来调用控制器操作(在页面加载时和在下拉列表中选择项目时),获取返回的布尔值,设置observabl
JSF 1.1-不刷新页面调用backing bean的动作方法(通过ajax/javascript)
如何通过在 ASP.NET MVC 框架中调用 ajax 来显示 kendoDropDownList?