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

Форум PHP

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

 

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

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

тема: Помогите создать запрос с 2-х ссылок?
 
 автор: xpom   (03.09.2006 в 17:36)   письмо автору
 
 

Уважаемые профессионалы!
Помогите создать запрос с 2-х ссылок, вот у меня ссылка:

<a href="polo.php?d=3">Раздел1</a>

мне нужно сделать так, что-бы нажимая на одну ссылку в адресной строке появлялось polo.php?d=3 и нажимая на другую ссылку к нему еще прибавлялось, наприме n=5, как это можно сделать?

   
 
 автор: DEM   (03.09.2006 в 17:41)   письмо автору
 
   для: xpom   (03.09.2006 в 17:36)
 

<a href=?d=3>Раздел1</a>
<a href=?n=5>Раздел2</a>

   
 
 автор: xpom   (03.09.2006 в 17:47)   письмо автору
 
   для: DEM   (03.09.2006 в 17:41)
 

Нужно чтобы при нажатии <a href=?d=3>Раздел1</a> d=3 сохранилось и к ниму прибавилось n=5 при ражатии <a href=?n=5>Раздел2</a>?

   
 
 автор: Тёма   (03.09.2006 в 17:57)   письмо автору
 
   для: xpom   (03.09.2006 в 17:47)
 

Вторая ссылка будет иметь вид
<a href=?d=3&n=5>Раздел2</a>

   
 
 автор: xpom   (03.09.2006 в 18:49)   письмо автору
 
   для: Тёма   (03.09.2006 в 17:57)
 

Да, ну мне нужно что бы она создавалась сама при последователном нажатии первой и второй ссылки? Это наверное нужно хранить данные первой ссылки в скрытом поле страницы?

   
 
 автор: DEM   (03.09.2006 в 19:11)   письмо автору
 
   для: xpom   (03.09.2006 в 18:49)
 

Тогда там скорее всего надо будет писать это на ЯваСкирпте...


Ну или попробуй



<a href=?d=3>Раздел1</a>
<a href=<? if($_SERVER['PHP_SELF']=="polo.php?d=3"){ echo "?>?d=3&n=5<?"; }?> >Раздел2</a>

   
 
 автор: xpom   (03.09.2006 в 21:03)   письмо автору
 
   для: DEM   (03.09.2006 в 19:11)
 

Нужно по такому принцепу как и на форуме: выбираем форум, затем в появившемся списке выбираем нужную тему, точно так и это выбираем раздел1 и в появившемся списке раздел2, как это можно сделать? Без ЯваСкрипта не обойтись?

   
 
 автор: NFR   (03.09.2006 в 21:26)   письмо автору
 
   для: xpom   (03.09.2006 в 21:03)
 

Может, т ак?..
<a href=<? $_SERVER['PHP_SELF']."&n=5"; ?> >

   
 
 автор: Yuri   (03.09.2006 в 23:41)   письмо автору
 
   для: xpom   (03.09.2006 в 21:03)
 

Если вы хотите чтобы пользователь сначала насчелкал комбинацию перехода именно ссылками, то без JS не обойтись (хиден поля или слои). Если не обязательно ссылками, то можно select полями (но, этот метод топорный).
Вообще, обычно используют перегрузку страницы с последующим использыванием, хотя бы той же $_SERVER['PHP_SELF'].

   
 
 автор: xpom   (05.09.2006 в 20:21)   письмо автору
 
   для: Yuri   (03.09.2006 в 23:41)
 

Если сделать ссылку Раздел1 в выпадающем списке формы, а ссылку Раздел2 обычную при выборе этой ссылки, вот из этих ссылок:

<a href=?d=3>Раздел1</a>
<a href=?n=5>Раздел2</a>


Возможно такое? Если да, то как код будет выглядеть?

   
 
 автор: cheops   (05.09.2006 в 21:15)   письмо автору
 
   для: xpom   (05.09.2006 в 20:21)
 

Если честно, не очень понятно что имеется ввиду - вы хотите реализовать эти ссылки в виде выпадающего списка и чтобы при выборе автоматически происходила переадресация на выбранный раздел?

   
 
 автор: DEM   (05.09.2006 в 21:17)   письмо автору
 
   для: cheops   (05.09.2006 в 21:15)
 

Нет, он хочет сделать такую фигню:
Если нажать на первую ссылку, то адресная строка примет такой вид www.site.ru/index.php?d=5, а если после этого кликнуть на вторую ссылку, то что бы адресная строка приняла вид: www.site.ru/index.php?d=5&n=4

Ну что-то вроде этого, может спутал чему должны быть равны d и n =)

   
 
 автор: cheops   (05.09.2006 в 21:25)   письмо автору
 
   для: DEM   (05.09.2006 в 21:17)
 

Тогда должно подойти ваше решение по ссылке от 03.09.2006 в 19:11.

   
 
 автор: xpom   (05.09.2006 в 21:37)   письмо автору
 
   для: cheops   (05.09.2006 в 21:15)
 

У меня есть ссылки например я их назвал Раздел1 и есть ссылки Раздел2 где каждая партия ссылок Раздел2 зависит от одной ссылки Раздел1. Нужно ссылки Раздел1 закинуть в выпадающий список формы, что бы при выборе одной из этих ссылок появлялась партия ссылок Раздел2 соответствующая выбранной ссылки из Раздел1! Все так же как на форуме мы выбираем форум а потом тему: форум это Раздел1, а тема Раздел2! Помогите, пожалуйста с этим вопросом?

   
 
 автор: cheops   (05.09.2006 в 22:20)   письмо автору
 
   для: xpom   (05.09.2006 в 21:37)
 

Возможно имеется ввиду такой скрипт
<form method=get>          
<select type=text name='d'>
<option <?php if($_GET['d'] == 1) echo "selected"?> value=1>Раздел 1
<option <?php if($_GET['d'] == 2) echo "selected"?> value=2>Раздел 2
</select>
<input class=button type=submit value="Перейти">
</form>
<?php
  
if($_GET['d'] == 1)
  {
    
// Ссылки раздела 1
    
echo "<a href=?d=".htmlspecialchars($_GET['d'])."&n=1>Раздел 1.1</a><br>";
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=2>Раздел 1.2</a><br>";
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=3>Раздел 1.3</a><br>";
  }
  if(
$_GET['d'] == 2)
  {
    
// Ссылки раздела 2
    
echo "<a href=?d=".htmlspecialchars($_GET['d'])."&n=1>Раздел 2.1</a><br>";
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=2>Раздел 2.2</a><br>";
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=3>Раздел 2.3</a><br>";
  }
?>

   
 
 автор: xpom   (06.09.2006 в 21:09)   письмо автору
 
   для: cheops   (05.09.2006 в 22:20)
 

Да, это то что надо, только как сделать чтобы ссылки из формы выбирались из таблицы MySQL?, можно сдесь это применить?

$res = mysql_query("SELECT * FROM Punkt",$db);

Ещё маленький вопросик, что обозначает .htmlspecialchars в коде?

   
 
 автор: kasmanaft   (06.09.2006 в 23:12)   письмо автору
 
   для: xpom   (06.09.2006 в 21:09)
 

Применить можно, но мне кажется что оно поможет :)
Вернее нужно немного дописать код, этого будет не достаточно ...

В таблице Punkt у вас хранятся все ссылки? Из них, наверное, нужно выбрать только нужные, в зависимости от выбранного раздела, т.е. использовать в запросе WHERE (если я правильно понял - если вы имеете ввиду ссылки разделов). Потом в цикле, используя массив, полученный в результате mysql_fetch_array($res) выводить эти ссылки


htmlspecialchars

(PHP 3, PHP 4, PHP 5)
htmlspecialchars --  Преобразует специальные символы в HTML сущности 
Описание
string htmlspecialchars ( string string [, int quote_style [, string charset]] )


В HTML некоторые символы имеют специальное значение и для сохранения 
своего значения должны быть преобразованы в HTML сущности. Эта функция 
возвращает строку, над которой проведены некоторые из таких преобразований. 
Этих преобразований достаточно для большинства задач веб-программирования.

Эта функция полезна при отображении данных, введенных пользователем, 
которые могут содержать нежелательные HTML тэги, например в форуме или 
гостевой книге. Необязательный второй аргумент quote_style определяет режим 
обработки одиночных и двойных кавычек. В режиме по умолчанию, ENT_COMPAT, 
преобразуются двойные кавычки, одиночные остаются без изменений. В режиме 
ENT_QUOTES преобразуются и двойные, и одиночные кавычки. а в режиме 
ENT_NOQUOTES и двойные, и одиночные кавычки остаются без изменений. 

Производятся следующие преобразования: 

'&' (амперсанд) преобразуется в '&amp;' 
'"' (двойная кавычка) преобразуется в '&quot;' when ENT_NOQUOTES is not set. 
''' (одиночная кавычка) преобразуется в '&#039;' только в режиме ENT_QUOTES. 
'<' (знак "меньше чем") преобразуется в '&lt;' 
'>' (знак "больше чем") преобразуется в '&gt;'

   
 
 автор: cheops   (06.09.2006 в 23:22)   письмо автору
 
   для: xpom   (06.09.2006 в 21:09)
 

Для этого можно поступить следующим образом
<form method=get>           
<?php
  $res 
mysql_query("SELECT * FROM Punkt",$db);
  if(!
$res) exit("Ошибка в синтаксисе запроса");
  if(
mysql_num_rows($res))
  {
     echo 
"<select type=text name='d'> ";
     while(
$punkt mysql_fetch_array($res))
     {
        if(
$_GET['d'] == $punkt[id]) $selected "selected";
        else 
$selected "";
        echo 
"<option  value=$punkt[id] $selected>$punkt[name]</option>";
     }
     echo 
"</select> ";
  }
?>
<input class=button type=submit value="Перейти"> 
</form> 
<?php 
  
if($_GET['d'] == 1
  { 
    
// Ссылки раздела 1 
    
echo "<a href=?d=".htmlspecialchars($_GET['d'])."&n=1>Раздел 1.1</a><br>"
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=2>Раздел 1.2</a><br>"
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=3>Раздел 1.3</a><br>"
  } 
  if(
$_GET['d'] == 2
  { 
    
// Ссылки раздела 2 
    
echo "<a href=?d=".htmlspecialchars($_GET['d'])."&n=1>Раздел 2.1</a><br>"
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=2>Раздел 2.2</a><br>"
    echo 
"<a href=?d=".htmlspecialchars($_GET['d'])."&n=3>Раздел 2.3</a><br>"
  } 
?>

   
 
 автор: xpom   (07.09.2006 в 18:32)   письмо автору
 
   для: cheops   (06.09.2006 в 23:22)
 

В током случае по умолчанию какие ссылки будут загружаться первыми, т.е. при открытии страницы Раздела 1 или Раздела 2? Как сделать что бы Раздела 1?

   
 
 автор: cheops   (08.09.2006 в 01:39)   письмо автору
 
   для: xpom   (07.09.2006 в 18:32)
 

Не очень понятно... нужно чтобы, если пользователь ещё ничего не выбрал открывались ссылки раздела 1? Тогда в начале скрипта следует поставить проверку
<?php
  
if(empty($_GET['d'])) $_GET['d'] = 1;
?>

   
 
 автор: xpom   (08.09.2006 в 17:12)   письмо автору
 
   для: cheops   (08.09.2006 в 01:39)
 

Да, вы правильно поняли. Спасибо большое за помощь!

   
 
 автор: xpom   (08.09.2006 в 18:13)   письмо автору
 
   для: xpom   (08.09.2006 в 17:12)
 

Подскажите пожалуйста, как правилно построить запрос к таблицам данных, чтобы вывести данные из таблицы в html посетителя, если у меня 3 таблицы данных, первая Punkt, вторая Podrazdel, третья Dannie?

$db = mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_selectdb($dbname, $db);

    $res = mysql_query("SELECT * FROM Dannie
    WHERE Dannie=$n"// Вот сдесь что-то я не пойму как построить условие выбора, если есть n и d?
,$db);

    $num=0;

    while ($myrow = mysql_fetch_row($res)) {
      $num++;
    }
    if ($num > 0) {

      $res = mysql_query("SELECT URL, Name, About FROM Dannie
      WHERE ?????,$db);

   
 
 автор: cheops   (08.09.2006 в 21:36)   письмо автору
 
   для: xpom   (08.09.2006 в 18:13)
 

Давайте заведём под этот вопрос новую тему, желательно в форуме MySQL.

   
Rambler's Top100
вверх

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