select输入下拉列表中的项目名称后如何显示文本,要显示的文本不是select的值

How to display a text after selecting an item name in the dropdown list, the text to be displayed is not the value of select

我想在下拉列表中选择项目名称后显示项目的描述。我使用 php 将项目的值及其相应的描述保存在数组中。所以这是我在 php 中的代码(它在一个循环中):

$item_name[] = ucfirst($row['item_name']);
$desci[] = ucfirst($row['descr']);

然后我有这个脚本(不起作用)

function updateText(val) 
    {
        var $el = document.getElementById("adv1");
        for($i=0; $i < <?php echo $ctr ?>; $i++)
        {
            if(val == '<?php echo "'.$itemid[$i].'" ?>')
            {
                $el.value = "$ 750";
            }
            else
            {
                 $el.value = "0";
            }
        }
    } 

这是我的 html 代码

<select name="item" id="datetime"  onchange="updateText(this.value)"  autofocus required>';
for ($i=0; $i < $ctr; $i++) { 
    echo '  <option value="'.$itemid[$i].'">'.$item_name[$i].' '.$brand[$i].' </option>';
}

echo '</select><p id="adv1"> </p>';

我想知道如何从 php 检索数据并在 javascript 中使用它。抱歉,这里是新手。感谢任何帮助,TIA!

你需要使用ajax,ajax使用起来很简单,按照这个link的例子,它只是刷新div所以你不用不必为了显示某些内容而刷新整个页面

http://www.w3schools.com/ajax/

 <?php

    echo    '<select name="item" id="datetime"  onchange="updateText(this.options[this.selectedIndex].getAttribute(\'data-val\'))"  autofocus required>';  
    for ($i=0; $i <$ctr; $i++) { 
        echo '  <option value="'.$itemid[$i].'" data-val="'.$desci[$i].'">'.$item_name[$i].' '.$brand[$i].' </option>';
    }
    echo '</select><p id="adv1"> </p>';
?>


 <script>
    function  updateText(nttest){
        document.getElementById("adv1").innerHTML=nttest;
    }
 </script>

希望对您有所帮助,在 data-val 中您可以传递您需要在 adv1 中显示的值