【问题标题】:Using onchange with a drop down list selection box使用带有下拉列表选择框的 onchange
【发布时间】:2014-11-01 14:10:21
【问题描述】:

我在处理 onchange 事件时遇到了一些问题。该任务是用于对数据进行排序的一大段代码,但要尝试通过隔离代码,我将其跟踪到 onchange 事件实际上不起作用,我看不出有什么问题。

<?php   include("db_connect.php"); 

$query = 'SELECT * FROM db_class_catagories';
$result = mysqli_query($dbconnection,$query);
?>


<select id="primary_catagory" name="primary_catagory" onchange = "test_function(this)"style="position:absolute;left:10px;top:10px;width:315px;height:20px;z-index:11;text-align:left;">
<option value=''>Select</option>
<?php while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
    echo "<option value='" . $row['primary_catagory'] . "'>" . $row['primary_catagory'] . "       
</option>";}
?>
</select>

<?php
function test_function($primary_catagory)   {
echo $primary_catagory;
}
?>

这个列表是从数据库生成的,并且调用得很好,但无论我选择什么,都不会发生任何事情。主脚本使用了 AJAX,但什么也没发生,我能想到的只是 onchange 没有发送数据。

我正在使用此示例,但无法使其正常工作。 How can i populate a dropdown list by selecting the value from another dropdown list

我的任务或多或少是一样的,但是我的 onchange 有点不对劲,知道我缺少什么愚蠢的东西吗?谢谢

【问题讨论】:

    标签: javascript php onchange


    【解决方案1】:

    onchange 事件是一个浏览器事件,所以test_function() 必须是一个 JavaScript 函数。它可以使用 Ajax 将有关选择的信息发送到服务器端 PHP 侦听器,但必须在客户端处理 onchange 事件。

    这里有一个简单的示例:Why am I not getting the value from onChange with Select? 只需将您的 Ajax 调用放在警报所在的位置(在答案中,而不是在问题中。)

    【讨论】:

      【解决方案2】:

      嗯,test_function 在服务器上的 PHP 中,onchange 在客户端/浏览器上。他们不能直接互相交谈。

      尝试在 html 页面中添加一些 Javascript(和 jquery)。

       <script>
       function test_function(e) {
           $.getJSON("server.php", {
               "action": "save",
               "val": $(e.currentTarget).val()
           }
       }
       </script>
      

      现在,inching 事件将执行这个 javascript 函数,它将在后台加载 server.php 页面。

      (这是未经测试的代码)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-01
        • 2016-11-21
        • 1970-01-01
        • 2011-02-07
        • 1970-01-01
        • 2010-12-02
        • 2018-10-01
        • 2015-12-12
        相关资源
        最近更新 更多