用javascript返回数组填充选择框

时间:2016-06-13 07:50:11

标签: javascript

我遇到了大麻烦。现在是凌晨2点45分,我从下午6点开始寻找想法或例子或者你想要的任何名字!

我有一个从a调用的js函数,但是我可以让它在所有工作。

这个想法是输入您的城市名称并在选择框中获取建议。然后,从选择框中,您可以单击其中一个城市,此信息将返回到您的表单字段。

有两个文件:index.php(js函数showhint和一个表单调用另一个.php文件来加载城市作为建议)

该代码可在www.bfamily.net上查看

如果有任何帮助,我会非常满意。

此致

2 个答案:

答案 0 :(得分:0)

可能会有所帮助

if (filter_var($q, FILTER_SANITIZE_STRING) || !filter_var($q, FILTER_SANITIZE_STRING) === false) {
        if ($q !== "") {
            $str = "<select name='suggestion'>";
            $q = strtolower($q);
            $len=strlen($q);
            foreach($zipArray as $name) {
                if (stristr($q, substr($name, 0, $len))) {
                    if ($hint === "") {
                        $hint = $name.'<br/>';
                    } else {
                        $hint .= "$name".'<br/>';
                    }
                    $suggestion[] = $name;
                    $str .= "<option value='".$name."'>".$name."</option>";                
                }
            }
            $str .= "</select>";
            if(count($suggestion) > 0) echo $str
        }
    }


但我认为更好的方法是在你的html中有一个隐藏的selectBox,然后从.php发送json“suggestions”列表到Ajax的.js文件,然后在你的selectBox中添加适当的选项并使其可见

答案 1 :(得分:0)

onchange上添加活动select以设置值

function(inputName, event) {
    document.getElementByName(inputName)[0].value = event.target.selectedOptions[0].value;
}

但是我要求你在inputs上做一些类似的事情:

<input type="text" name="zipCode1" onkeyup="showHint(this.value)" size="20" value="" style="text-transform:uppercase" list="suggestion">
<datalist id="suggestion">
    <option>Houston, TX 77070</option>
    <option>Cypress, TX 77433</option>
    <option>Cypress, TX 77429</option>
</datalist>

当然,您可以在页面加载时使用datalist生成PHP,也可以使用AJAX请求生成$string="cat, dog, pig, hello"; $arr = explode(", ",$string); foreach($arr as $key=>$array) { $key = 'string'.($key+1); ${$key} = $array; }