У меня есть список select
и options
заполняются из базы данных, как показано ниже:
<select name="users" onchange="showUser()">
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT userName FROM user';
mysql_select_db('finance');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
$val = $row['ID'];
echo "<option value=$val>" . $row['userName'] . "</option>";
}
?>
</select>
И это очень простая функция предупреждения:
<script type="text/javascript">
function showUser()
{
alert("haha");
}
</script>
Я могу получить значения из базы данных, но всякий раз, когда onChange, нет предупреждения?
EDIT:
Он работает над IE, но не Google Chrome?!
Прежде всего, избегайте использования встроенного JS. Итак, удалите событие onchange
в элементе <select>
:
<select name="users">...</select>
И вместо этого полагайтесь на использование обработчиков событий, предоставляемых jQuery, для этого:
$(function() {
$("select[name='users']").change(function() {
alert("onchange() event detected");
});
});
Если ваш элемент <select>
динамически добавлен, но вы можете использовать метод .on()
для привязки события:
$(function() {
$(document).on("change", "select[name='users']", function() {
// Rest of the code
});
});
На стороне примечания, вероятно, не очень хорошо использовать функции mysql_
больше - попробуйте mysqli_
миграцию на mysqli_
или PDO.
alert
о IE, на самом деле становится все хуже
попробуй это
$('select').on('change', function() {
$(this).find(':selected').val();
})
this.value
не будет работать. Это $(this).find(':selected').val()
вы должны поместить функцию js перед вашим выбором:
<script>
function showUser()
{
alert("haha");
}
</script>
<select name="users" onChange="showUser();">
<option value=sdf>sdfs</option>
<option value=s1df>sdf1s</option>
</select>
или поместите свою функцию в <head>
документа
script
находится в разделе <head>
, как уже упоминалось, он работает на IE, но не на Chrome