window.onload = function() {
document.getElementsByName("id")[0].value = 3;
}
2 зависимых select (PHP+MySql+java)
Есть 2 поля: марка и модель автомобиля, список моделей авто зависит от выбранной марки, но при этом модели должны загружаться из базы данных MySql и страница не должна перезагружаться.
Искал в интернете, везде написано про Ajax, а возможно ли сделать не используя Ajax
Возможно, если вы сразу все значения загрузите на этапе формирования страницы в JavaScript массивы и будете ими оперировать с помощью скрипта прямо на странице
А можно поподробнее, или небольшой пример
Ну хоть кто-нибудь, приведите небольшой пример пожалуйста
Код:
<?php
// т.е. как бы данный массив должен у Вас из БД заполняться.
$cars_models = array(
"Mazda" => array("RX-7","RX-8"),
"Subaru" => array("Impreza","Subaru")
);
?>
<html>
<head><title>Z kfvth</title></head>
<body>
<script type="text/javascript">
/*
формируем список на JavaScript, аналогичный $cars_models, для динамики нужной и чтобы не юзать AJAX и прочие прелести жизни
для этого юзайте foreach и прочее, чтобы вывести содержимое массива в текст
получим что-то, типа:
var cars_models = {
"Mazda" : ["RX-7","RX-8"],
"Subaru": ["Impreza","Subaru"]
};
*/
load_models(obj) {
// получаете значение выбранного пункта, т.е. obj.value
// и просто загружаете данные во второй select с id = "ya_select2"
// как загружать - читайте. Правильно через DOM, вроде и с innerHTML корректно будет работать
}
};
</script>
<-- Здесь список марок -->
<select id="ya_select1" onselect="load_models(this)">
<!-- Вывод здесь также делайте с PHP -->
<option value="Mazda">Mazda</option>
<option value="Subaru">Subaru</option>
</select>
<!-- Здесь список моделей -->
<select id="ya_select2"></select>
</body>
</html>
// т.е. как бы данный массив должен у Вас из БД заполняться.
$cars_models = array(
"Mazda" => array("RX-7","RX-8"),
"Subaru" => array("Impreza","Subaru")
);
?>
<html>
<head><title>Z kfvth</title></head>
<body>
<script type="text/javascript">
/*
формируем список на JavaScript, аналогичный $cars_models, для динамики нужной и чтобы не юзать AJAX и прочие прелести жизни
для этого юзайте foreach и прочее, чтобы вывести содержимое массива в текст
получим что-то, типа:
var cars_models = {
"Mazda" : ["RX-7","RX-8"],
"Subaru": ["Impreza","Subaru"]
};
*/
load_models(obj) {
// получаете значение выбранного пункта, т.е. obj.value
// и просто загружаете данные во второй select с id = "ya_select2"
// как загружать - читайте. Правильно через DOM, вроде и с innerHTML корректно будет работать
}
};
</script>
<-- Здесь список марок -->
<select id="ya_select1" onselect="load_models(this)">
<!-- Вывод здесь также делайте с PHP -->
<option value="Mazda">Mazda</option>
<option value="Subaru">Subaru</option>
</select>
<!-- Здесь список моделей -->
<select id="ya_select2"></select>
</body>
</html>
Вот простенький код. Зато понятный. По логике - неверно задавать марку как ключ, так как в БД у вас, скорее всего, есть поле id, его-то и надо исопльзовать. Ну переделать сами сможете. Ну и функцию load_module(obj) я бы тоже как-нибудь переделал бы.
Кстати, java != javascript.
Спасибо! А если использовать Ajax, есть простенькие примеры, желательно тоже про автомобили... И вообще как лучше сделать на Ajax или не используя его
Если же проект не нагрузочный, да и записей в таблице мало, то не имеет смысла с AJAX заморачиваться.
Пример приводить не буду, ибо лень. Тем более в инете про динамические списки + Ajax примеров и прочего просто столько, что эскаватором не перекопать.
jQuery - отлично справится с этой задачей...
Вот сделал вывод из первой таблицы, не могу понять как сделать вывод данных во втором выпадающем списке из второй второй таблицы.
<?php
$db=mysql_connect('localhost','root','');
mysql_select_db('laba2',$db);
mysql_query('set names cp1251');
$x1=mysql_query('select * from t1 order by name');
$x2=mysql_query('select * from t2 order by name');
echo '<select name="first_list">';
echo '<option value="">Please choose</option>';
while ($row=mysql_fetch_assoc($x1))
{
echo '<option value="'.$row['id'].'">'.$row['name'].'</option>';
}
echo '</select>';
?>
Вообщем есть такая формочка:
Код:<select name="id"> <option value="0">Все страны</option> <option value="1">Австралия</option> <option value="2">Австрия</option> <option value="3">Азербайджан</option></select>Нужно добавить кусочек кода, например на JS, так чтоб код сразу выбирал определённое значение. Т.е. чтоб не было стандартно выбрано "Все страны".
Помогите плиз, как это сделать?
Код:
Что-то типа такого. МОжет есть ошибка в имени функции - в гугл лень лезть.