1

嗨,我有这段代码可以从数据库中提取客户名称和地址。它将每个条目的客户端名称回显到下拉列表 ( <option value="<?php echo "$client" ?>"><?php echo "$client" ?></option>) 中,该下拉列表在 while 循环中完成。然后我有一个 Javascript,当您在下拉列表中选择一个选项时,它会更改名为“内容”的 DIV 的内部 HTML - 这是基于从数据库中提取的内容的唯一性。- 这是我无法让它工作的地方。下面是我的代码,非常感谢任何帮助。

<div id="selectBox">
<div class="ui-widget">
<form>
    <label>Select a Client:</label>
    <select id="combobox" >
    <option value="">Select...</option>
    <?php

include "db_conn.php";

callDB();   

function callDB(){      
$sql = 'SELECT * FROM clientlist';
   $query = mysql_query($sql) or die(mysql_error());
   while ($row = mysql_fetch_array($query))
          {
       $ID= $row['id'];
       $client= $row["client"];
       $postal_add= $row["postal_add"];
?>

<option value="<?php echo "$client" ?>"><?php echo "$client" ?></option>
        <?php
}} ?>
    </select>
    </form>
</div>
</div>
<br>
<div id="content">

</div>
</div>
<script type="text/javascript">



// Script for changing Div
function change()
{
switch (document.getElementById("combobox").value)
{
  case "<?php echo $client ?>":
  document.getElementById("content").innerHTML = "<h2><?php echo $client ?></h2><b>Postal Address:</b> <?php echo $postal_add ?>"
  break;

}
}

</script>
4

4 回答 4

1

您在单词中缺少一个分号<?php echo "$client" ?>。应该是<?php echo "$client"; ?>。编辑:这实际上是不需要的,结尾 ?> 自动关闭语句。

要添加更多内容,正如@Witty 所说,您没有将 $client 变量存储在循环之外,因此您无法访问它!改变那个!

于 2012-08-29T12:28:55.467 回答
1

您创建了填充 div 元素的函数。但是,此时,该函数仅被定义,从未被执行。

您需要为选择框设置一个 onchange 处理程序来调用您的 javascript 函数。

此外,输出到您的 javascript 中的 php 在您的 while 循环之外。

于 2012-08-29T12:30:17.880 回答
0

在执行 Javascript(客户端)时,PHP 已经完成(服务器)。您需要在 While-Loop 中从 PHP 构建 Javascript,然后在页面稍后将其发送到浏览器:

// in while
$javascript .= "case $client:
document.getElementById('content').innerHTML = '<h2>$client</h2>
    <b>Postal Address:</b>$postal_add'
break;"

// later in page
switch (document.getElementById("combobox").value)
{    
<?php echo $javascript; ?>
}
于 2012-08-29T12:35:19.447 回答
0

使用 ajax 在下拉列表中选择选项的基础上更新您的 div

 $('#dropdown').change(function() {
                    var id = $("#option").val();
                    var url = ajax action from where u will get the data for the selected option 
                    var data = {OptionID:id};
                    $.ajax({
                        type: 'POST',
                        url: url,
                        data: data,
                        success: function(data) 
                        { 
                            append the values in div here using div.innerhtml
                    });
            });
于 2012-08-29T12:36:40.943 回答