За последние 24 часа нас посетил 16921 программист и 1674 робота. Сейчас ищут 1092 программиста ...

не работает метод POST. Почему?

Тема в разделе "Прочее", создана пользователем sarultima, 16 мар 2010.

  1. sarultima

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

    С нами с:
    16 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    Всем доброго времени суток.
    В программировании новичок, но перечитал много FAQ и мануалов, но не получается решить проблему.
    Проблема в следующем: есть страница, на которой в таблице для каждой строки создаю форму, на форме есть скрытое поле, которому даю значение (ID товара из БД), и кнопка "Купить", которая собственно и должна передавать ID выбранного товара. На другой странице ("Корзина покупателя") пытаюсь вывести именно тот товар, ID которого выбрал пользователь на предыдущей странице. Но сессионной переменной не присваивается данный ID. Пытался просто вывести $_POST['edit3'] - там почему-то пусто (собственно поэтому и не присваивается ничего). Ниже код:
    страницы с таблицей:
    Код (Text):
    1.  
    2. $res.="<table width=100% border=1 bordercolor=grey>";
    3.     $res.="<tr><td align = center><font  color=white face='verdana' size=2>1</font></td><td  align = center><font  color=white face='verdana' size=2>2</font></td><td  align = center><font  color=white face='verdana' size=2>3</font></td><td  align = center><font  color=white face='verdana' size=2>4</font></td></tr>";
    4.     do
    5.     {
    6.         $res.="<tr><td  colspan=2><font  color=white face='verdana' size=2>\"Товар: ";
    7.         $res.=$myrow['name'];
    8.         $res.=" </font></td><td><font  color=white face='verdana' size=2>Цена: ";
    9.         $res.=$myrow['price'];
    10.         $res.=" грн.";
    11.         $res.="<td><form id='".$myrow['id']."' action='korzina.php' method='post'>
    12.         <input id='edit3' type='hidden' name = '".$myrow['id']."' value='".$myrow['id']."'>
    13.         <input type='submit' value='Купить'></form> </td>";
    14.         $res.="</td></tr>";
    15.     }
    16.     while($myrow =mysql_fetch_array($result));
    17.     $res.="</table>";
    18.     echo $res;
    страницы "Корзина"
    Код (Text):
    1.  
    2. echo $_POST['edit3']; //тут ничего не выводит
    3. $_SESSION['korzina'].=$_POST['edit3']; //тут соответственно ничего и не присваивается =(
    Что я делаю неправильно? Или где может скрываться ошибка?
    P.S. Прошу сильно не пинать. Я новичок не только тут, но и в программировании в целом.
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Доступ в $_POST и $_GET к элементам формы осуществляется не по идентификатору (id), а по имени (name).
     
  3. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    и учитель у тебя плохой
    http://www.php.ru/forum/viewtopic.php?t=15029
     
  4. sarultima

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

    С нами с:
    16 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    Спасибо за ответы и критику. Но к сожалению сейчас учителя выбрать не имею возможности...
    Получается, что передаваемое имя заведмо точно не известно? Это может быть любое имя из диапазона имеющихся... т.к. имя имеет значение "ID записи" и получить его никак не получится моим способом?
     
  5. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    У тебя:
    HTML:
    1. <input id='edit3' type='hidden' name = '".$myrow['id']."' value='".$myrow['id']."'>
    Если тебе известно имя, то ты знаешь значение. Переменная - значение. Имя же постоянно:
    HTML:
    1. <input id='edit3' type='hidden' name = 'edit3' value='".$myrow['id']."'>
    Разные формы пошлют разный значения edit3, но имя всегда edit3.
     
  6. sarultima

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

    С нами с:
    16 мар 2010
    Сообщения:
    3
    Симпатии:
    0
    Теперь понял свою ошибку. Спасибо большое за то, что ткнули носом. Как правило такие ответы, когда тебя тыкают носом - очень полезны... думаю не только для меня, но и другим полезно будет.
     
  7. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Важная часть программирования кроется в поисках своих ошибок. Если не научишься искать сам, а будешь спрашивать на форумах, толку не выйдет никакого.