Re: Выпадающий список
Получилось спасибо!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Страницы Назад 1 … 25 26 27 28 29 … 41 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Получилось спасибо!
Не могу понять почему строки из базы выводятся не в строку а в столбик ведь по умолчянию если не задавать перенос строки то они должны выводится в одну строчку а сейчяс выводится в столбик
$result3 = mysql_query("select id, razmer from baza where razmer ='".$row["zavod"]."'
OR `razmer` = '" . $row["zavod1"] . "'
OR `razmer` = '" . $row["zavod2"] . "'
OR `razmer` = '" . $row["zavod3"] . "'
OR `razmer` = '" . $row["zavod4"] . "' group by razmer ",$db);
if (mysql_num_rows($result3) > 0) {
while ($row3 = mysql_fetch_array($result3)) {
print "<table width='600'><tr><td align='left'>
<a href='view_auto.php?id=" . $row3["id"] . "'><font color='#1E90FF'><b>" . $row3["razmer"] . "</font></a></td></tr></table>
";
}}
else { print "нету";}
все разобрался извиняюсь не так посмотрел на код
почемуто не коректно выводятся результаты. подскажите как правильно написать условие
if ($row3["razmer"]==$row["zavod"] and $row3["razmer"]==$row["zamena1"] and...) {
while ($row3 = mysql_fetch_array($result3)) {
print "<a href='view_auto.php?id=" . $row3["id"] . "'><font color='#1E90FF'><b>" . $row3["razmer"] . "</font></a>
проблема в том что если переменные в таблице с которой сравнивается переменная razmer, одинаковые то они не все выводятся тоесть если мы имеем 3 переменные значение которых равно 1 и если переменная размер тоже имеет значение 1 то она выведется только 1 раз а нужно чтоб выводилась столько раз сколько совпадений было
Замените "and" на два амперсанда "&&".
выводит сообщение "нету" по условию
$result3 = mysql_query("select id, razmer from baza where razmer ='".$row["zavod"]."'
group by razmer ",$db);
if ($row3["razmer"]==$row["zavod"] && $row3["razmer"]==$row["zavod1"]) {
print"Заводская комплектация- ";
while ($row3 = mysql_fetch_array($result3)) {
print "<a href='view_auto.php?id=" . $row3["id"] . "'><font color='#1E90FF'><b>" . $row3["razmer"] . "</font></a> ";
}}
else { print "нету";}
У вас сперва условие if ($row3... идет и только потом выбирает данные $row3 = mysql_fetch_array($result3).
$result3 = mysql_query("select * from baza where razmer='".$row["zavod"]."'",$db);
while ($row3 = mysql_fetch_array($result3));
if($row3["razmer"]== $row["zavod"] && $row3["razmer"]== $row["zavod1"] ) {
print" ".$row3["razmer"]." ";
}
else { print "нету";
}
выводит "нету", а если заменить "==" на "=" то тогда выводится только переменная "$row3["razmer"]== $row["zavod1"]"
Раз выводит - значит значения не равны. Чтобы увидеть какие значения в каждой переменной, выведите их на странице или прервите выполнение скрипта.
Здравствуйте подскажите пожалуста как правильно написать проверку нажата ли кнопка. у меня есть выпадающие списки
echo '<form method="POST" action="">';
$auto = "<p align='right'><b>Ширина-</b> <select name='nazv_auto' size='1' selected='selected' onchange=\"this.form.submit();\" >;
<option value='' >Все</option></p>";
$query = mysql_query("SELECT * FROM shirina ORDER BY id_auto DESC");
$result = mysql_fetch_array($query);
do
{
$auto .= "<option value='".$result['nazv_auto']."' "; /* то что передается */
if (!empty($_POST['nazv_auto']) && $_POST['nazv_auto'] == $result['nazv_auto']) {
$auto .= ' selected="selected"';
}
$auto .= ">".$result['nazv_auto']."</option>"; /* то что отобразится в списке */
}
while($result = mysql_fetch_array($query));
$auto.= "</select>";
echo $auto."";
{
$model = "<p align='right'><b>Профиль-</b> <select name='nazv_model' size='1'onchange=\"this.form.submit();\" >;
<option value=''>Все</option></p>";
$query = mysql_query("SELECT * FROM profil
WHERE id_auto = '" . addslashes($_POST['nazv_auto']) . "' ORDER BY id_model "); /* здесь нужно принять номер названия тоесть id_auto */
$result = mysql_fetch_array($query);
do
{
$model .= "<option value='".$result['nazv_model']."'";
if (!empty($_POST['nazv_model']) && $_POST['nazv_model'] == $result['nazv_model']) {
$model .= ' selected="selected"';
}
$model .= ">".$result['nazv_model']."</option>";
}
while($result = mysql_fetch_array($query));
$model .= "</select>";
echo $model.""."";
}
{
$year = "<p align='right'><b>Диаметр-</b> <select nazv_year name='nazv_year' size='1' onchange=\"this.form.submit();\" >;
<option value=''>Все</option></p>";
$query = mysql_query("SELECT nazv_year FROM diametr
WHERE id_model='" . addslashes($_POST['nazv_model']) . "' and id_year='" . addslashes($_POST['nazv_auto']) . "' ORDER BY id_year ");
$result = mysql_fetch_array($query);
do
{
$year .= "<option value='".$result['nazv_year']."'";
if (!empty($_POST['nazv_year']) && $_POST['nazv_year'] == $result['nazv_year']) {
$year .= ' selected="selected"';
}
$year .= ">".$result['nazv_year']."</option>";
}
while($result = mysql_fetch_array($query));
$year .= "</select>";
echo $year.""."";
$sezon = "<p align='right'><b>Сезон-</b> <select name='nazv_sezon' size='1' onchange=\"this.form.submit();\" >;
<option value=''>Все</option></p>";
$query = mysql_query("SELECT nazv_sezon FROM sezon ");
$result = mysql_fetch_array($query);
do
{
$sezon .= "<option value='".$result['nazv_sezon']."'";
if (!empty($_POST['nazv_sezon']) && $_POST['nazv_sezon'] == $result['nazv_sezon']) {
$sezon .= ' selected="selected"';
}
$sezon .= ">".$result['nazv_sezon']."</option>";
}
while($result = mysql_fetch_array($query));
$sezon .= "</select>";
echo $sezon.""."";
}
{
}
;?>
они зависимы, тоесть при выборе параметра в первом сразуже идет выборка из таблицы в базе. Сам параметр передается другому списку и т.д. Я хочу поставить кнопку для того чтоб сначяла выбрать все 4 списка потом нажать кнопку а проверка сработалабы на нажатие кнопки, но проблема в том что кнопки уже стоят как функции на списках и их нельзя удалять потому ка они не смогут друг другу передавать данные. Я думаю что в етой чясти кода
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();
// Проходим цикл ассоциативного массива имен и добавляем элемент в массив $aSQL, если список выбран.
foreach ($aName as $select => $field) {
if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}
$aUnion = array();
foreach ($aName as $checkbox) {
if (isset($_POST[$checkbox])) {
$aUnion[] = mysql_real_escape_string($checkbox);
}
}
if (count($aUnion) > 0 && count($aSQL) > 0) {
$sql = 'SELECT * FROM (SELECT * FROM `baza`
WHERE `brand` IN("' . implode('","', $aUnion) . '")
AND ' . implode('AND', $aSQL) . ' AND `ostatok` > 0 ORDER BY `cena` DESC)AS `t` GROUP BY `model` ORDER BY `cena` DESC';
}
можно както изменить строку где идет проверка
if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}
нажаты ли поля и добавить сюда проверку нажата ли кнопка, только как написать нзнаю
нажаты ли поля и добавить сюда проверку нажата ли кнопка
Кнопка может иметь вид.
<input type="button" value="Кнопка" onclick="javascript:button_onclick();" />
Добавляем скрытое поле.
<input type="hidden" value="no" id="hidden_button" name="hidden_button" />
Обрабатываем нажатие кнопки.
<script>
function button_onclick() {
document.getElementById('hidden_button').value = 'yes';
document.getElementById('form').submit(); // Здесь идентификатор формы.
}
</script>
В PHP коде проверяем скрытое поле.
if (isset($_POST['hidden_button']) && $_POST['hidden_button'] == 'yes') {
// Кнопка нажата.
}
Здравствуйте, получилось для обработчика приходит информация была ли нажата кнопка, но здесь нужно немного другое нужно чтоб форма не отправляла значения списков до того момента пока не выбран последний список. Но у меня на всех 4 списках стоят кнопки для передачи друг другу параметр, как сдесь быть?
нужно чтоб форма не отправляла значения списков до того момента пока не выбран последний список
Форма отправляет значения списков, если они находятся в форме. Думаю надо в скрипте обработки уже смотреть принимать эти поля или нет.
Пока немогу придумать что делать. Подскажите вот код двух выпадающих списков, данные передаются ява скриптом, как сюда дописать еще два чтоб было 4 зависимых выпадающих списка.
<script>
function dynamicSelect(id1, id2) {
// Сперва необходимо проверить поддержку W3C DOM в браузере
if (document.getElementById && document.getElementsByTagName) {
// Определение переменных, ссылающихся на списки
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
// Клонирование динамического списка
var clone = sel2.cloneNode(true);
// Определение переменных для клонированных элементов списка
var clonedOptions = clone.getElementsByTagName("option");
// Вызов функции собирающей вызываемый список
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}
// Функция для сборки динамического списка
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
// Удаление всех элементов динамического списка
while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
// Перебор клонированных элементов списка
for (var i = 0; i < clonedOptions.length; i++) {
// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка
if (clonedOptions[i].className.match(pattern1) ||
clonedOptions[i].className.match(pattern2)) {
// его нужно клонировать в динамически создаваемый список
sel2.appendChild(clonedOptions[i].cloneNode(true));
}
}
}
// Вызов скрипта при загрузке страницы
window.onload = function() {
dynamicSelect("gorod", "sklad");
}
</script>
php
<form action="obrabotka.php" method="post" name="form2">
<?php
print "<select name=\"gorod\" id=\"gorod\">";
print "<option value=\"select\">Выберите город доставки...</option>";
while($row1 = mysql_fetch_array($res1)){
print "<option value='{$row1['id_gorod']}'>".$row1['gorod']."</option>";
}
print "</select>";
print "<select name=\"sklad\" id=\"sklad\">";
print "<option class=\"select\" value=\"select\">Выберите склад...</option>";
while($row2 = mysql_fetch_array($res2)){
print "<option class=\"{$row2['id_sklad']}\" value='{$row2['sklad']}' size=\"5\">".$row2['sklad']."</option>";
}
print "</select>";?>
как сюда дописать еще два чтоб было 4 зависимых выпадающих списка
Не могу подсказать.
В списках стоит кнопка
$auto = "<p align='right'><b>Ширина-</b> <select name='nazv_auto' size='1' selected='selected' onchange=\"this.form.submit();\" >;
всюду она одинаковая,
возможно ли както отслеживать какая именно кнопка нажата. Или както проименовать каждую кнопку чтоб какждая кнопка отправляла форму на свой обработчик?
this.form.submit() - Означает, что происходит отправка основной формы, той внутри которой находится <select>. Можно создать внизу страницы скрытые формы содержащие скрытые поля в которые с помощью JavaScript вставлять данные и затем отправлять форму.
Здравствуйте. Подскажите как поставить условие. Есть 4 выпадающих списка, после выбора в них параметров сами параметры попадают в масив
$aName = array('nazv_auto' => 'auto', 'nazv_model' => 'model', 'nazv_year' => 'year', 'nazv_modif' => 'modif');
после чего формируется выборка из базы по четырем параметрам, но вот какбы дописать код чтоб было условие если в масиве присутствуют все 4 параметра то идет выборка, а если хоть один параметр пустой то ничего не выводить.
если в масиве присутствуют все 4 параметра то идет выборка, а если хоть один параметр пустой то ничего не выводить.
Проверяйте с помощью isset(), например.
Здравствуйте. У меня не получилось с условием. Вот чясть кода віпадающих списков
echo '<form method="POST" action="">';
$auto = "<p align='right'><b>Производитель-</b> <select name='nazv_auto' size='1' selected='selected' onchange=\"this.form.submit();\" >;
<option value='' >Все</option></p>";
$query = mysql_query("SELECT * FROM auto ORDER BY id_auto ");
$result = mysql_fetch_array($query);
do
{
$auto .= "<option value='".$result['nazv_auto']."' "; /* то что передается */
if (!empty($_POST['nazv_auto']) && $_POST['nazv_auto'] == $result['nazv_auto']) {
$auto .= ' selected="selected"';
}
$auto .= ">".$result['nazv_auto']."</option>"; /* то что отобразится в списке */
}
while($result = mysql_fetch_array($query));
$auto.= "</select>";
echo $auto."";
{
$model = "<p align='right'><b>Модель-</b> <select name='nazv_model' size='1' onchange=\"this.form.submit();\" >;
<option value=''>Все</option></p>";
$query = mysql_query("SELECT * FROM automodel
WHERE nazv_auto = '" . addslashes($_POST['nazv_auto']) . "' ORDER BY nazv_auto "); /* здесь нужно принять номер названия тоесть id_auto */
$result = mysql_fetch_array($query);
do
{
$model .= "<option value='".$result['nazv_model']."'";
if (!empty($_POST['nazv_model']) && $_POST['nazv_model'] == $result['nazv_model']) {
$model .= ' selected="selected"';
}
$model .= ">".$result['nazv_model']."</option>";
}
while($result = mysql_fetch_array($query));
$model .= "</select>";
echo $model.""."";
}
{
условие если оприделены все 4 параметра из 4 списков то сформировать масив
if (isset($_POST['nazv_auto']) and isset($_POST['nazv_model']) and isset($_POST['nazv_modif'])){
$aName = array('nazv_auto' => 'auto', 'nazv_model' => 'model', 'nazv_year' => 'year', 'nazv_modif' => 'modif');
}
else ('');
если допустим определены только три или меньше то по идее масив не должен сформироватся, но все работает так какбы условия вообще нету
isset() показывает и пустые значения элементов форм. Пробуйте использовать вместе с isset() проверку пустого значения empty(), или в паре с isset() проверьте длину строки функцией strlen().
Спасибо получилось поставил проверку empty но в другом месте работает!
Здравствуйте, подскажите пожалуйста как в ссылке можно передать несколько переменных.
Есть переменные
$a= ($_POST['nazv_auto']);
$b= ($_POST['nazv_model']);
$c= ($_POST['nazv_year']);
$d= ($_POST['nazv_modif']);
$result3 = mysql_query("select razmer from baza where razmer ='".$row["zavod"]."'
нужно передать все ети переменные в одной ссылке, одну я могу передать а все не получяется
print " <a href='view_auto.php?razmer=" . $row3["razmer"] . "'>ссылка</a>
Параметры перечисляются в ссылке через символ амперсанда (&).
print " <a href='view_auto.php?razmer=" . $row3["razmer"] . '&nazv_auto=' . urlencode($_POST['nazv_auto']) . "'>ссылка</a>
Здравствуйте, не получяется передать либо принять переменную таким способомкак вы описали.
вот чясть кода где передаю переменные
$a= ($_POST['nazv_auto']);
$b= ($_POST['nazv_model']);
$c= ($_POST['nazv_year']);
$d= ($_POST['nazv_modif']);
print " <a href='view_auto.php?razmer=" . $row3["razmer"] . '&nazv_auto=' . urlencode($_POST['nazv_auto']) . "'><font color='#1E90FF'><b>" . $row3["razmer"] . "</b></font></a>
вот чясть кода где принимается переменная из ссылки
if (isset($_GET['$nazv_auto'])) {$nazv_auto = $_GET['$nazv_auto'];}
if (isset($_GET['razmer'])) {$razmer = $_GET['razmer'];}
$result2 = mysql_query("select * from automobil where auto='$nazv_auto'",$db);
$row2 = mysql_fetch_array($result2);
print"'".$row2['auto']."'";
$result = mysql_query("select * from baza where razmer='$razmer'",$db);
$row = mysql_fetch_array($result);
но выводится только переменная razmer а вот переменная auto гдето теряется, где здесь ошибка не пойму.
Страницы Назад 1 … 25 26 27 28 29 … 41 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.