Как сделать форму для поиска......

zIP

Новичок
Как сделать форму для поиска......

Как сделать форму поиска с использованием двух скриптов с их выбором методом select или переключателем?

Естественно на php
 

Кром

Новичок
>с их выбором методом select или переключателем?

Это что, так существенно?
 

zIP

Новичок
Да нет. Но форма желательно одна. Две можно и просто так влепить.
 

kruglov

Новичок
На PHP никак.
На JS - меняете action у формы по onchange соответствующего селекта
 

zIP

Новичок
А это?

PHP:
 $array=file ("blocks/base.dat");
$razmer=sizeof ($array);

if ($words){
$words=urlencode ($words);
for ($i=0;$i<$razmer ;$i++ ){
$raws=explode ("|",$array[$i]);
	if ($raws[0]==$search){$url=str_replace ("%words%",$words,$raws[2]);break;}
}
$content .=Header ("Location:" . $url);
}

else {

$content .="<form method=post action=\"" . getenv(SCRIPT_NAME) .  "\">\n<input type=\"text\" name=\"words\" size=\"30\">\n<select name=\"search\">\n";
for ($i=0;$i<$razmer ;$i++ ){$raws=explode ("|",$array[$i]);
$content .="<option value=\"". $raws[0] . "\">" . $raws[1] . "</option>\n";}
$content .="</select>\n<input type=\"submit\" value=\Искать!\">\n</form>";
}
В файле base.dat собственно адреса.

Но у меня с этим проблема. Не хочет работать в Php-nuke. Поэтому ищу другой вариант.
 

kruglov

Новичок
Нуу, location это хорошо, но только если форма по GET идет (про что нигде не написано в вопросе).

Другие вариенты все такие же будут.
 

Кром

Новичок
kruglov а что, include по условию уже не в почете? :)


>А это?
По твоему это понятный вопрос? Ты действительно так думаешь? Написал "А это?" и все всем стало понятно?

>Но у меня с этим проблема. Не хочет работать в Php-nuke. Поэтому ищу другой вариант.

Перед тем как искать другой вариант, лучше разберись, почему не хочет работать. Потому что "другой вариант" тоже может не захотеть работать. Что тогда делать будешь, опять варианты искать?
 

zIP

Новичок
Работать не может потомучто я не могу вычленить контент в виде некой переменной.
Информация в блок передаеться в виде переменной $content.
PHP:
$content .="<form method=post action=\"" . getenv(SCRIPT_NAME) .  "\">\n<input type=\"text\" name=\"words\" size=\"30\">\n<select name=\"search\">\n";
for ($i=0;$i<$razmer ;$i++ ){$raws=explode ("|",$array[$i]);
$content .="<option value=\"". $raws[0] . "\">" . $raws[1] . "</option>\n";}
$content .="</select>\n<input type=\"submit\" value=\"Искать !\">\n</form>";
}
Почему это не работает я не понимаю, к сожалению.
 

Кром

Новичок
> не могу вычленить контент в виде некой переменной.

Как это понимать? Нет переменной которая тебе нужна или она есть, но ты не можешь из нее ничего выбрать?
 

zIP

Новичок
Я уже сам запутался. У меня не получаеться ее определить так , чтобы она была корректной. Она у меня либо не определяеться и блок не может получить инфолрмацию, либо определяеться но поиск не работает.

Я не могу понять, что именно нужно определить для передачи.

-~{}~ 22.03.06 16:01:

Сделал форму с использованием java скрипта.
Но есть проблема - не знаю как сделать что бы открывался результат не в новом окне.

PHP:
$content .= <<<JS
 <SCRIPT LANGUAGE="JavaScript">
<!--
//
//Srarch!!!!!!
//
var engine = new Array()
engine[0] = "biblio/search.php?sea="
engine[1] = "modules.php?name=Search&query="

//
//Parametrs.......
//
var extra = new Array()
extra[0] = ""
extra[1] = ""

//
//Name of searching systems........
//
 var names=new Array()
 names[0] = "Поиск 1";      names[1] = "Поиск 2";
//
function look(form)
 {
 var all;
 var d=new Array()
 for (i=0;i<6;i++)
 {
  d[i]=form.radio1[i];
  }
 for (i=0;i < 6; i++)
   {
     if(d[i].checked)
      {
        break
      }
   }
   all=engine[i]+ '' +form.text.value + '' +extra[i];
   wnd= window.open("about:_self");
   wnd.location.href=all ;
}
//
-->
 </SCRIPT>
JS;
$content .="
        <center>
  <form name=\"search\" target=\"_self\">
       <input type=\"text\"  name=\"text\" size=\"50%\">
     <input type=\"button\" name=\"send\" value=\"SEARCH\" onClick=\"look(this.form)\">
   
          <table width=\"50%\" border=\"0\" cellpadding=\"0\">
            <tr>
              <td width=\"25%\"><b>
                <input type=\"radio\" name=\"radio1\"
   value=\"0\">Поиск</b></td>
              <td width=\"25%\"><b>
                <input type=\"radio\" name=\"radio1\"
    value=\"1\">&#205;&#224; &#241;&#224;&#233;&#242;&#229;</b></td>
            </tr>

          </table>

</form>";
 

Фанат

oncle terrible
Команда форума
zIP
слушай, а зачем тебе эти
$content .= <<<JS и $content .="?
неужели это удобнее, чем писать, как есть?
 

zIP

Новичок
Это не мне надо. Это php-nuke надо. Иначе блоки не работают.

Так ка же сделать не в новом окне результат был?
 

Кром

Новичок
Что бы не открывалось новое окно, нужно с помощью твоего javascript вызывать функцию submit() для нужной тебе формы.
Текущая страница просто перезагрузиться.
 

zIP

Новичок
Покажите, если не трудно. Я в javascript понимаю еще меньше чем в php
 

Кром

Новичок
Ну смотри. У тебя есть javascript функция. В ней ты реализуешь необходимые тебе действия, проверяешь поля формы и т.д. А затем тебе нужно эту форму засабмитить. У любой формы есть метод submit(). Т.е. если все условия в javascritp функции выполнены, тебе нужно вызвать search.submit() что приведет к сабмиту формы. Т.е. никаких новых окон броузера открываться не должно.
 

zIP

Новичок
Если честно, то все равно ничего не понял. Можно на примере показать?
 

zIP

Новичок
Я его вообще не знаю. А учить так или иначе надо все, просто это к профессии не имееет никакого отношения. И носит характер решения конкретных задач, связанных с моим увлечением.

А вопрос решаеться таким образом

Строку
wnd= window.open("about :_self");
Удаляем а в строку

wnd.location.href=all ;

Заменяем на

location.href=all ;
 
Сверху