繁体   English   中英

如何设置通过AJAX从另一个页面调用的下拉列表的默认值?

[英]How do you set the default value of a drop down list that is being called via AJAX from another page?

对于我的代码,我的下拉列表是通过以下方式在原始页面上启动的:

<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页面。

任何想法将不胜感激。

您的代码似乎没有多大意义。 让我担心的特别一件事是您说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>

接收此AJAXed请求的PHP页面将使用包含所有省份值或定界列表的JSON对象进行回复。

一旦Javascript showRecords函数从PHP页面接收到响应,它将把每个选项添加到正确的select标记中。 完成后,它将通过以下类似方式将默认值设置为所需的任何选项:

target_element.selectedIndex = {desired list index here};

我对你的问题有很多假设,

首先是,如果默认情况下您具有这样的选择省

<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>'; 

因此这取决于您的代码和您的需求。 也许如果您遇到其他情况,应该以其他方式解决问题。

cmmiiw :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM