|
|
|
|
|
для: Николай2357
(05.01.2009 в 21:01)
| | Огромное спасибо, вопрос снят:) | |
|
|
|
|
|
|
|
для: TetRiska
(05.01.2009 в 20:56)
| | Ошиблись Вы в том, что не сделали диагностику запросов при отладке скрипта. Запрос у вас с ошибкой, но этого Вы никогда не узнаете, пока не будете пользоваться подобной конструкцией:
<?
$res2 = mysql_query("SELECT title FROM data WHERE jan='$jan",$db) or die ('Error: ' . mysql_error());
|
Кроме того, я не совсем понял логики, но если у Вас отдельная форма на каждый селект, Вы POST данные (ровно как и GET) получите только из одной формы, которую отправляете в данный момент. | |
|
|
|
|
|
|
|
для: Николай2357
(05.01.2009 в 20:26)
| | Формирование второго списка я пологаю таким же принципом. Вот сделал, но не вышло сформировать второй список.
<?php
$jan = isset($_POST['jan'])?mysql_escape_string($_POST['jan']):null;
function selicte($select)
{
if($select == $_POST['film'])
return "selected";
}
$res2 = mysql_query("SELECT title FROM data WHERE jan='$jan",$db);
if(mysql_num_rows($res2) > 0)
{
echo " <form action='?a=".$_GET['a']."' id='select2' method='post'>
<select onchange=\"document.getElementById('select2').submit()\" name='film'>";
while (list($title) = mysql_fetch_row($res2))
echo " <option ".selicte($title)." value='".$title."' >".$title." </option> ";
echo "</select>
</form>";
}
?>
|
При выборе жанра должен загружаться данными второй список? Где я ошибся? | |
|
|
|
|
|
|
|
для: TetRiska
(05.01.2009 в 20:21)
| | Да, только подстраховаться никогда не помешает:
<?
$jan = isset($_POST['jan']))?mysql_escape_string($_POST['jan']):null;
|
| |
|
|
|
|
|
|
|
для: Николай2357
(05.01.2009 в 17:59)
| |
<?php
if (isset($_POST['jan'])) { $jan = $_POST['jan']; }
$query = mysql_query("SELECT * FROM data WHERE jan='$jan'",$db);
//формируем второй список
?>
|
так я понял словить значение первого списка и подставить его в запрос для формирования второго? | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 17:49)
| | Тут вопрос стоял именно в методах передачи формы. Сайт автора давно кочует по форуму, и в предыдущих версиях он использовал в формах GET. Я опять увлекся и забыл, что не только он читает этот топик... | |
|
|
|
|
|
|
|
для: Николай2357
(05.01.2009 в 15:45)
| | >> Вопрос, в адресной строке должно передаваться параметр jan=....
>Да, это проще, так как не нужно кодировать кирилицу. "Отловить" оч. просто, нужно принимать не GET['jan'], а POST['jan'].
Это не так. Массив при методе POST определяется местом размещения параметра (среди URI или в параметрах формы) | |
|
|
|
|
|
|
|
для: TetRiska
(05.01.2009 в 15:55)
| | Разницы что передавать и как особой нет. Это зависит от логики приложения. по номерам конечно предпочтительней, чем по строкам. А пост интереснее в данном случае потому, что этого не будет видно в адресной строке. Ни кто не мешает передать id из формы методом POST. Вот если по ссылке, тогда другое дело. Но и тогда мне кажется все таки лучше использовать оба массива, как я написал:
<form action='?a=".$_GET['a']."' id='select1' method='post'>
|
а дальше:
<?
echo " <option ".selicted($id)." value='".$id."' >".$title."</option> ";
|
| |
|
|
|
|
|
|
|
для: Николай2357
(05.01.2009 в 15:45)
| | А если по методу гет передавать, можно ж в запросе указать еще ИД и потом указать в value='$id', а перед этим list($id,$title)...То будет передаваться не кириллический параметр, а номер строки, что более луче, т.к. потом мне не надо будет ее определять по title, чтобы узнать какие фильмы относятся к этому жанру. Тоесть в списке должны отображаться к примеру Драма (ее номер 2), а в строке jan=2..Ловим эту двойку и узнаем из другой таблицы все фильмы принадлежащие двойке (Драме)..Как такой вариант? Остается, чтобы параметр передавался в адресной строке. | |
|
|
|
|
|
|
|
для: TetRiska
(05.01.2009 в 15:29)
| | Да, это проще, так как не нужно кодировать кирилицу. "Отловить" оч. просто, нужно принимать не GET['jan'], а POST['jan']. | |
|
|
|
|