Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: работа с выпадающим списком
 
 автор: adir   (02.11.2016 в 11:55)   письмо автору
 
 

Как сделать значения в выпадающем списке ссылкой на другие файлы-страницы сайта

  Ответить  
 
 автор: elenaki   (02.11.2016 в 12:02)   письмо автору
 
   для: adir   (02.11.2016 в 11:55)
 

http://www.cyberforum.ru/post3858802.html


<select onchange="with (this) if (selectedIndex) location = options [selectedIndex].value">
<option>Выберите</option>
<option value="http://google.com">Гугль</option>
<option value="http://yandex.ru">Яндекс</option>
</select>


если надо в новом окне, то чуть изменяете:
onchange="with (this) if (selectedIndex) window.open (options [selectedIndex].value, '_blank')"

  Ответить  
 
 автор: confirm   (02.11.2016 в 13:07)   письмо автору
 
   для: elenaki   (02.11.2016 в 12:02)
 

Где вы этой дремучести научились? Проверять selectedIndex есть необходимость в списках со множественным выбором. В данном случае достаточно получить значение самого списка:

<select onchange="if(this.value) location = this.value"> 
<option value="">Выберите</option> 
<option value="http://google.com">Гугль</option> 
<option value="http://yandex.ru">Яндекс</option> 
</select>

  Ответить  
 
 автор: elenaki   (02.11.2016 в 14:34)   письмо автору
 
   для: confirm   (02.11.2016 в 13:07)
 

Я не училась этому. Нашла поиском.

  Ответить  
 
 автор: adir   (20.12.2016 в 15:49)   письмо автору
 
   для: elenaki   (02.11.2016 в 14:34)
 

Может дадите контакты для общения вне ....

  Ответить  
 
 автор: adir   (04.11.2016 в 10:20)   письмо автору
 
   для: confirm   (02.11.2016 в 13:07)
 

Я начинающий поэтому сразу все не ухватываю пока. Просто для просмотра в редакторе вставляю вашу форму изменяю на свои ссылки в опциях сохраняю файл в php. Выдает ошибку во второй строке. А вообще у меня на главной странице в коде- есть два массива- один в выпадающем списке с наименованиями праздников а другой с цифрами-нумерацией открыток к этим праздникам. Работает четко но мне нужен не вывод цифр а вывод самих открыток .т.е по ссылкам вместо цифр

  Ответить  
 
 автор: elenaki   (04.11.2016 в 11:42)   письмо автору
 
   для: adir   (04.11.2016 в 10:20)
 

1. Откуда я знаю, что у вас во второй строке
2. Откуда я знаю, какие ссылки вставлены

Выложите кусок кода. В ссылках надо указывать id фотографии (если ее потом надо из базы тянуть)

  Ответить  
 
 автор: adir   (04.11.2016 в 22:07)   письмо автору
 
   для: elenaki   (04.11.2016 в 11:42)
 

Просмотрите если будет время.......вот фрагмент кода:
<tr>
<td><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td width="200" height="500" valign="top"<br><br><br><br><span style="color:#FF0000;font:15pt italic newroman;">Меню сайта</span>rn<form action="index.php" method="POST">rn<input type="hidden" name="posted" value="true">rn<span style="color:#FF0000;font:15pt italic newroman;"><br><br>rn<select name="holiday">// выпадающий списокr
<?php
/* Названия праздников помещены в массив $namber_holiday, начиная сrn индекса 1 для совпадения с учетом нумерации индексов массиваrn $books = array */
$namber_holiday = array ( 1=> "Новый год", "Рождество", "Курбан-байрам", "Ораза-байрам", "День рождения", "9 Мая");
/* Создается цикл для 6 итераций, помещающий название каждого
праздника в выпадающий список: */
for ($counter = 1; $counter < 6; $counter ++) {
echo "<option>$namber_holiday[$counter]</option>";rn}rnecho "</select><br><br>";
?>
<input type="submit" value="выберите открытку">
<br><br>
</td>
<td width="*" align="center">
<?php
if (isset($_POST['posted'])) {
$books = array ( "1", "2", "3", "4", "5","6");
/* массив с номерами открыток */
for ($counter=0; $counter<6; $counter++)
{
if($_POST['hiddenholiday'][$counter]==$_POST['holiday'])
echo "$books[$counter]";
}
}
}

for ($counter = 1; $counter < 6; $counter++) {
echo"<input type='hidden' name='hiddenholiday[]'value='$namber_holiday[$counter]'>";
}
?>
код выводит цифры а не файлы с картинками в новом окне. Заранее благодарю

  Ответить  
 
 автор: confirm   (05.11.2016 в 11:59)   письмо автору
 
   для: adir   (04.11.2016 в 22:07)
 

Это вообще не будет работать так как ошибок немерено. В чем код пишется? Нормальный редактор имеет подсветку и указывает на ошибки синтаксиса, а таких ошибок у вас масса.

rn - это что такое? Если перевод строки, то это \r\n? И должен быть в конструкции echo, а не вне нее. Но \r\n, это к примеру в Word будет учтено, а для HTML это мусор, учитываться будет как пробел. Не выводите этого больше на страницах.

Если праздники это массив под ключами, значит и опции списка выбора праздника должны оперировать ключом, как идентификатором праздника, это удобнее нежели оперировать названиями праздников.

В коде куча ошибок, поэтому все выброшено и показано самое главное:

<?
//Праздники
$holiday = array ( 1=> "Новый год""Рождество""Курбан-байрам""Ораза-байрам""День рождения""9 Мая");
$postal_path 'images/'//путь к изображениям открыток завершающийся слешем /, а сами открыты имеют имена 1.jpg, 2.jpg и т.д.';
//прием формы
if (isset($_POST['holiday'])) {
    
//если значение $_POST['holiday'] истинно и такой праздник существует
    
if($hday = (int)$_POST['holiday'] AND array_key_exists($hday$holiday)) {
        
//выбран праздник, $hday его номер и номер открытки
        //что-то делаем с этим и либо переход на другую страницу, либо еще что-то....
    
} else {
        
//формой отправили туфту, какие-то действия
    
}
}
?>
<form action="index.php" method="POST">
<?php
//Список выбора праздника и просмотра открытки
echo '<select name="holiday" onchange="showPostal(this.value)"><option value="">Выберите открытку ...</option>'.implode(array_map(function($k$v) {
    return 
'<option value="'.$k.'">'.$v.'</option>'//значение опции, это индекс праздника в массиве
}, array_keys($holiday), $holiday)).'</select>';
?>
<!-- здесь будет отображаться открытка выбранного праздника -->
<div id="postal"></div>
<input type="submit" value="Отправить">
</form>

<script>
var ims = '<?=$postal_path?>';
function showPostal(im) { //отображение открытки выбранного праздника
    var card = document.getElementById('postal');
    card.innerHTML = '';
    if(!im) return;
    card.innerHTML = '<img src="' + ims + im + '.jpg">';
}
</script>

  Ответить  
 
 автор: adir   (10.11.2016 в 12:45)   письмо автору
 
   для: confirm   (05.11.2016 в 11:59)
 

Спасибо большое. Три дня не был дома и только прочитал сообщение.. Согласен с вами на счет мусора но он автоматом был вставлен при копировании. -видимо не до конца очистил. Извиняюсь. Напишу сообщение после разборки кода. Еще раз спасибо за человеческое отношение.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования