如何设置通过 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?

如何通过 ajax 使用数据库数据填充 ASP.NET MVC 4 下拉列表

网页设计中选中下拉列表中选项后如何实现页面刷新?