Проблемы с передачей данных методом Post

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

прибавить единицу до for ($y=0; $y<=$xx; ++$y)

У меня нет сей час времени обдумать код... Может завтра..
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Voron3,

вот кусок кода в четверг
[syntax="PHP"]print "<OPTION value='".$y."'$str><font>$y</font></OPTION>";[/syntax]

а вот в пятницу
[syntax="PHP"]print "<OPTION value='".$y."' $str><font>$y</font></OPTION>";[/syntax]

разница между ними - в пробеле между value и selected

предполагаю, что браузер не мог определить, что элементы выбраны именно из-за проблела.

Совет: после того, как написал 1.php и перед тем, как писать 2.php и смотреть на $_POST, надо сначала посмотреть на HTML, который генерируется в результате 1.php, обычно там видны ошибки.

Если дело не в пробеле и оно у тебя всё равно не заработает, покажи именно этот HTML.
Push0k
Сообщения: 6
Зарегистрирован: 24 янв 2007, 23:39

Не хочу плодить лишние темы, поэтому пишу здесь.
У меня вопрос тоже по этой тематике - передача данных методом POST
Есть ссылка,
else {
$links .= "<a href=\"$PHP_SELF?letters=$letters$var&line=$line&last=$var\".'&refr=1'>$var</a> ";
}

которая передает и обрабатывает данные на этой же странице, но все передаваемые данные идут по умолчанию методом ГЕТ и видны в адресной строке.
Что можно сделать так чтоб передавать их методом ПОСТ(не было их в адресной строке)?
Пробовал через <form action> но это здесь не канает. Хотя это как написать
Voron3
Сообщения: 15
Зарегистрирован: 22 янв 2007, 14:29

Push0k писал(а):Не хочу плодить лишние темы, поэтому пишу здесь.
У меня вопрос тоже по этой тематике - передача данных методом POST
Есть ссылка,
else {
$links .= "<a href=\"$PHP_SELF?letters=$letters$var&line=$line&last=$var\".'&refr=1'>$var</a> ";
}

которая передает и обрабатывает данные на этой же странице, но все передаваемые данные идут по умолчанию методом ГЕТ и видны в адресной строке.
Что можно сделать так чтоб передавать их методом ПОСТ(не было их в адресной строке)?
Пробовал через <form action> но это здесь не канает. Хотя это как написать

Пишешь в HTML

<form action='имя своего файла куда должны передваться данные' method='POST'>

... присваиваешь значения своим переменным $letters, $var, $line

<input name='letters' type='hidden' value='$letters$var'>
<input name='line' type='hidden' value='$line'>
<input name='last' type='hidden' value='$var\'>
<input type=submit value='Сохранить'>



И все будет передаваться методом POST
Voron3
Сообщения: 15
Зарегистрирован: 22 янв 2007, 14:29

Oscar писал(а):Voron3,

вот кусок кода в четверг
[syntax="PHP"]print "<OPTION value='".$y."'$str><font>$y</font></OPTION>";[/syntax]

а вот в пятницу
[syntax="PHP"]print "<OPTION value='".$y."' $str><font>$y</font></OPTION>";[/syntax]

разница между ними - в пробеле между value и selected

предполагаю, что браузер не мог определить, что элементы выбраны именно из-за проблела.

Совет: после того, как написал 1.php и перед тем, как писать 2.php и смотреть на $_POST, надо сначала посмотреть на HTML, который генерируется в результате 1.php, обычно там видны ошибки.

Если дело не в пробеле и оно у тебя всё равно не заработает, покажи именно этот HTML.

Да, дело не в пробеле, поэтому предоставляю HTML код, который сформировывается при входе на страничку 1.php. Он во вложенном файле.
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

А слабо php выложить, или там ппс то что до тебя еще никто не писал и является военной тайной....
Рыться в убого отформатированнос коде желания < 0
Voron3
Сообщения: 15
Зарегистрирован: 22 янв 2007, 14:29

Выкладываю php файлы, во вложенных файлах. Будут вопросы по переменным задавайте отвечу.
Вложения
php.zip
(2.59 КБ) 21 скачивание
Voron3
Сообщения: 15
Зарегистрирован: 22 янв 2007, 14:29

Все разобрался в чем была ошибка.

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

Описание ошибки:

Код: Выделить всё


for ($i=0; $i++<3 ;)
{
$n=0; 
$result = mysql_query($query) or die("Query failed : " . mysql_error());
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$n=$n+1;

... вывод данных из бд

print "<select name='prior".$n."'>";
for ($y=0; $y++<$xx ;)
 {
         if ($y==$line[prior])
    $str='selected';
         else
    $str='';
         print "<OPTION  value='".$y."' $str><font>$y</font></OPTION>";
 }
print "    </select>
}
}

Гемор был в переменной $n, т.к. цикл повторялся три раза и все это время $n приравнивалась 0. Поэтому создавались "<select name='prior".$n."'>"; - с одинаковыми именами.

Спасибо всем, кто принел участие в помощи. Буду теперь по чаще заглядывать на данный ресурс много чего интересного рассматриваеться.
Ответить