За последние 24 часа нас посетили 17553 программиста и 1584 робота. Сейчас ищут 1466 программистов ...

проблема с передачей из формы

Тема в разделе "PHP и базы данных", создана пользователем Ann, 17 июн 2007.

  1. Ann

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

    С нами с:
    17 апр 2007
    Сообщения:
    12
    Симпатии:
    0
    Доброе время суток.
    помогите.
    Из формы , выпадающего списка передается только первое слово в поле.
    т.е в переменную должна сохранится вся запись, а сохраняетсся только первое слово записи.
    PHP:
    1.  
    2. echo "Редактирвание новости <br>";    
    3. echo "<select name=name>";
    4. $SQL = "SELECT files.name FROM files";
    5. @$ss=mysql_query($SQL);
    6. $nr=mysql_num_rows($ss);
    7. for ($i=0; $i<$nr; $i++)
    8.   {
    9.      $row = mysql_fetch_array($ss);
    10.                for ($j=0; $j<$nf; $j++)
    11.               {
    12.           $string = htmlspecialchars($row[$j]);
    13.          $string2 = trim($string);
    14.        echo "<option value=".$string2.">".$row[$j];
    15.        // echo "<option value=".$row['name'].">".$row[$j];
    16.                }
    17.   }
    18.  
    19. echo "</select> ";
    20. echo "<input type=submit name=submit1>";
    21. return;
    22.  
    23. }
    24. if (isset($_POST['submit1']))
    25. {
    26.   [b]  $text4=@$_POST['name'];[/b]
    27.    $result = "SELECT files.id, files.name, files.text, files.full, autor.name_autor, tema.tema FROM files,autor, tema WHERE files.id_autor=autor.id AND  files.id_tema=tema.id AND files.name='".$text4."'";
    28. $res=mysql_query($result, $link); ........................... и тд
    29.  
    И вот в переменной $text4 отображается первое слово из записи name. соответсвенно запрос работает не верно.
    Подскажите плиз :oops:
     
  2. Anonymous

    Anonymous Guest

    что за хитроумные конструкции?
     
  3. stas_t

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

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    Код (Text):
    1. echo '<option value="'.htmlspecialchars ($string2).'">'.htmlspecialchars ($row[$j]).'</option>';
     
  4. Ann

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

    С нами с:
    17 апр 2007
    Сообщения:
    12
    Симпатии:
    0
    Вовсе не хитроумно а стандартно.
     
  5. Ann

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

    С нами с:
    17 апр 2007
    Сообщения:
    12
    Симпатии:
    0
    К сожалению так не помогает....
     
  6. Anonymous

    Anonymous Guest

    да ну? кто такую чушь сказал???
     
  7. Davil

    Davil Guest

    А зачем подавление ошибок перед переменной? Перед функцией нужно ставить...
     
  8. Ann

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

    С нами с:
    17 апр 2007
    Сообщения:
    12
    Симпатии:
    0
    Хорошо исправлюсь :oops:
    но это делу не помогает.


    Подскажите как чтоб он отправлял всю запись а не до первого пробела.
    А то ерунда какая то список выпадающий правильно все работает. а передает не правильно.
    Диплом горит
     
  9. stas_t

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

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    Ann
    у вас атрибут value не закавычен, поэтому берётся только первое слово. htmlspecialchars всё-таки надо использовать на случай если $string2 сама содержит кавычки.

    p.s. а по поводу бессмысленно расставленного подавления ошибок перед переменными не волнуйтесь, оно не должно влиять на результат. оно может влиять на производительность, запутывать ваш код, вызывать возбуждённые возгласы протеста седобородых старцев и т.д., но зато добавляет некоторый шарм и индивидуальность.
     
  10. Davil

    Davil Guest

    Ну я еще не старец пока...
    Индивидуальность можно добавить с помощью комментариев.
     
  11. stas_t

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

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    а творческий подход? с помощью комментариев каждый может :)