За последние 24 часа нас посетили 59894 программиста и 1771 робот. Сейчас ищут 820 программистов ...

Несколько форм на одной странице

Тема в разделе "PHP для новичков", создана пользователем aziz, 17 ноя 2008.

  1. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Здравствуйте, есть такая проблема у меня на страничке несколько форм но все они работают с одной базой, просто например одна форма поиска, вторая регистрация, третья отправка сообшения (email)? что то немогу разобрать как сделать что бы исходя из того какая форма в данный момент работает скрипт выдавал нужние действия, искал в инете но что то подходящего не нащёл, смутно предстовляю что нужны действия связанные с id и isset? но как? пожалуйста дайте совет или ссылкую Спасибо!
     
  2. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    у форм есть submit. У каждой свой. Присвой им разные имена и смотри какое имя пришло
     
  3. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    так будет правильно?
    PHP:
    1. <!---Forma 1-->
    2. <form name="form1" method="post" action="<? $_SERVER['PHP_SELF']?>"  >
    3.   <input name="test1" type="text" value="test1" >
    4.   <input type="submit" name="1" id="test1" value="Submit">
    5. </form>
    6. <br>
    7. <!---Forma 2-->
    8. <form name="form2" method="post" action="<? $_SERVER['PHP_SELF']?>" >
    9.   <input type="text" name="test2" value="test2">
    10.   <input type="submit" name="2" id="test2" value="Submit">
    11. </form>
    12. <? if(isset($_POST['1'])){
    13.  echo($_POST['test1']);
    14. }elseif(isset($_POST['2'])){
    15.  echo($_POST['test2']);
    16. };
    17. //и так далее
    18.  
    19. ?>
     
  4. Frozen

    Frozen Активный пользователь

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    ну ппробуй
     
  5. dembi

    dembi Активный пользователь

    С нами с:
    21 июл 2008
    Сообщения:
    78
    Симпатии:
    0
    Если нужно 3 формы, то сделай три разных обработчика:

    Первый find.php
    Второй registr.php
    Третий send.php

    И для вызова каждого используй свой action="....." в поле тега <form>

    К примеру:

    <form action=" find.php" method="post">
    <input type="text" name="text" maxlength="15">
    ......
    <input value="Поиск" name="submit" type="submit" >
    </form>

    <form action="registr.php" method="post">
    <input type="text" name="text" maxlength="15">
    <input value="Зарегистрировать" name="submit" type="submit" >
    </form>

    и так же для отправки.
     
  6. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    такой вариант немного не подходит так как у меня идёт обработка на одной странице, весь контент сайта берётся из базы, тоесть типа index.php?page= и так далее, нужные страницы подгружаются в зависимости от действий...
     
  7. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    не то?
    PHP:
    1. <?
    2. $acts=array("search","register");
    3. $act=!empty($_GET['act'])?$_GET['act']:false;
    4. if ($act && $acts[$act]) {
    5.     include "moduls/$act.php";
    6. }
    7.  
    8. ?>
    тогда мб
    PHP:
    1. <?
    2. switch(true) {
    3.     case !empty($_POST['key1']):
    4.     break;
    5.     case !empty($_POST['key2']):
    6.     break;
    7. }
    8.  
    9. ?>
     
  8. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    попробую, у меня:
    PHP:
    1. <?
    2.  
    3. if(isset($_REQUEST['sear']))
    4. {
    5.     $_REQUEST['sear']=trim($_REQUEST['sear']);
    6.     $error='';
    7.  
    8.     if (strlen($_REQUEST['sear']) > 2) {
    9. $str = ($_REQUEST['sear']);
    10.         $res=mysql_query('SELECT * FROM pages WHERE (title LIKE "%'.$str.'%" ||content LIKE "%'.$str.'%")');
    11.         if (!mysql_num_rows($res)) {
    12.             $error = 'Поиск не дал результатов.';
    13.         }
    14.     }
    15.     else {
    16.         $error = 'Слишком короткий поисковый запрос. Запрос не может быть короче 3-х символов.';
    17.     }
    18.  
    19.     if ($error) {
    20.         echo '<p>'.$error.'</p>';
    21.     }
    22.     else {
    23.         while ($row = mysql_fetch_assoc($res))
    24.         {
    25.             $row['content'] = stripslashes(strip_tags($row['content']));
    26.             $offset = 100;
    27.             $left_pos = strpos(($row['content']),($_REQUEST['sear']));
    28.             $left_pos_go = $left_pos-$offset < 0 ? 0 : $left_pos-$offset;
    29.             $right_pos_go = $left_pos+strlen($_REQUEST['s'])+$offset;
    30.  
    31.             if ($left_pos_go == 0)
    32.                 $right_pos_go += abs($left_pos-$offset);
    33.  
    34.             $cut = trim(substr($row['content'],$left_pos_go,$right_pos_go-$left_pos_go));
    35.             $cut = '... '.preg_replace('/^[^ ]+ *(.*) [^ ]+/s','\\1',$cut).' ...';
    36.  
    37.             $pattern = '([А-Яа-я0-9a-z]*'. quotemeta($_REQUEST['sear']) .'[А-Яа-я0-9a-z]*)';
    38.             $replacement = '<span style="background-color: yellow;">\\1</span>';
    39.             $cut = eregi_replace($pattern, $replacement, $cut);
    40.  
    41.             echo '<p><a href="index.php?page='.$row['id'].'">'.$row['title'].'</a></p>';
    42.             echo '<p style="margin:-12px 0 13px 0;">'.$cut.'</p>';
    43.         }
    44.     }}
    45.     else{
    46.        
    47. $id=($_GET['page']);
    48.   if (!isset($id))
    49.    $id=23;
    50.  elseif ($id>=1)
    51.      $id = intval($id);
    52. $query = "select * from pages where id='$id'";
    53. $result = mysql_query($query);
    54. while ($row = mysql_fetch_assoc($result)) {
    55.   echo "{$row['content']}";
    56. }
    57.  
    58.     } ?>