我在处理 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 有点不对劲,知道我错过了什么愚蠢的东西吗?谢谢
最佳答案
onchange
事件是浏览器事件,因此 test_function()
必须是 JavaScript 函数。它可以使用 Ajax 将有关选择的信息发送到服务器端 PHP 监听器,但 onchange
事件必须在客户端处理。
这里有一个简单的示例:Why am I not getting the value from onChange with Select? 只需将您的 Ajax 调用放在警报所在的位置(在答案中,而不是问题中。)
关于javascript - 将 onchange 与下拉列表选择框结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26690068/