передать значение переменной при нажатии на ссылку, но методом post?

letopisec

Новичок
передать значение переменной при нажатии на ссылку, но методом post?

при использовании метода get можно так:

<a href=link.php?var=val&xxx=yyy>click here</a> а можно ли то же но методом post?
 

vasa_c

Новичок
Можно сделать скрытую форму с нужными параметрами. На ссылку повесить onClick, по которому отправлять ту самую форму.
Только зря вы это...
 

squirell

Новичок
Можно так.

<form action="link.php" method="post" name="form">
<input type="hidden" name="var" value="val">
<input type="hidden" name="xxx" value="yyy">
<a href="link.php" onclick="document.form.submit(); return false;">click here</a>
</form>
 

Фанат

oncle terrible
Команда форума
а ты расскажи, зачем ты это делаешь, тебе и объяснят - почему
 

letopisec

Новичок
есть список фирм

x1
x2
x3
x4
x5

нужно выбрать одну из них. Вариант с кнопками рядом с каждым именем мне не навится,
с <SELECT> - нет наглядности, с радио кнопками - нужно делать внизу "submit" и выбор одной из фирм будет состоять из двух действий - выбор и submit. С методом get - например хочу чтобы при обновлении окна, броузер "забывал" переменные (не передавал серверу). Так что ничего лучшего не придумал.

>а ты расскажи, зачем ты это делаешь

слово "зря" прозвучало раньше, поэтому и спросил почему?
 

Фанат

oncle terrible
Команда форума
потому, что в 99% случаев человек задаёт такой вопрос по незнанию. не знают, как сделать по-человечески, и начинают извращаться.

Что происходит после выбора фирмы?
при обновлении какого именно окна браузер должен что-то забыть?
 

letopisec

Новичок
>человек задаёт такой вопрос по незнанию
в точку. Может посоветуете чё.

>Что происходит после выбора фирмы?

Это для базы данных учёта работ в сервисном центре. Задумка такая. Приходит например изделие на ремонт. Открываем визарда в браузере, задача которого провести порядок заполнения в соответствии с заполнением таблиц базы данных.
В конечном итоге происходит запись в таблицу выполненных работ. Если нажать обновление - в mysql снова записывается точно такая же строчка. Делать уникальной
строчку таблицы - нельзя, так как изделие может поступить с одной и той же поломкой.
 

Фанат

oncle terrible
Команда форума
Ё.
это всё, конечно, интересно, но здесь нет ответа на вопрос "Что происходит после выбора фирмы?"
и нет ответа на вопрос, "при обновлении какого именно окна браузер должен что-то забыть?"

теперь, правда, ещё один вопрос появился:
Если при использовании POST у тебя требует обновить, то почему ты спрашиваешь, как тебе отправить методом POST? Где логика?
 

letopisec

Новичок
>нет ответа на вопрос

Простейший случай. Приходит изделие. Визард нам говорит: введите серийник и название, нажмите далее > выбирите фирму от которая его сдала -> Запись добавлена успешно, спасибо за терпение ;). Теперь нажимаем F5 и браузер снова обращается к адресу вида script.php?firm_id="12". Апачи создаёт переменную $_GET[firm_id]=12 и cнова вызывает script.php, а скрипт инструктирует модуль mod_php, который егообрабатывает сделать запись в mysql. Номер записи при этом синкрементируется (auto_increment), Поле firm_id в таблице работ будет равен 12 а остальные поля которые передаются методом post быдут нулевыми.

>Если при использовании POST у тебя требует обновить, то почему ты спрашиваешь, как тебе отправить методом POST? Где логика?

Обновить не требует. Просто если ктоньть нажмет обновить эту некорректную запись
надо будет удалять (вводить пароль итп).

По сути можно обойтись и без post конечно - но мне было интересно знать способ. Кроме того теперь интересно почему зря.
 

Фанат

oncle terrible
Команда форума
Обновить не требует. Просто если ктоньть нажмет обновить эту некорректную запись
надо будет удалять (вводить пароль итп).
я смотрю, ты любитель к словам придираться. я тоже, как-нибудь к твоим придерусь.
мало не покажется.
хорошо.
путь будет не обновить. пусть будет "если ктоньть нажмет обновить эту некорректную запись".
Это происходит при использовании метода POST
это тебя не устраивает.
При этом ты всё равно спрашиваешь, как тебе сделать методом POST
Где логика?
 

vasa_c

Новичок
К кнопку "добавить" почему собственно кнопкой не сделать? Зачем сслыки?
 

hussar

In code we trust!
Ты перечитал что тоько что написал? Думаю что нет!

Ты можешь сделать набор радиокнопок, и по событию onSelect сабмитить форму, и не понядобятся тебе еще одна кнопка, илседовательно лишнее действие.
 

Фанат

oncle terrible
Команда форума
Апачи создаёт переменную $_GET[firm_id]=12 и cнова вызывает script.php, а скрипт инструктирует модуль mod_php, который егообрабатывает сделать запись в mysql. Номер записи при этом синкрементируется (auto_increment), Поле firm_id в таблице работ будет равен 12 а остальные поля которые передаются методом post быдут нулевыми.
здесь вообще какая-то фантастика описана.
какой здесь метод используется? если гет, то при чём тут какие-то "поля которые передаются методом post"?
Если пост, то почему поля пустые?
 

letopisec

Новичок
>пусть будет "если ктоньть нажмет обновить эту некорректную запись".
>Это происходит при использовании метода POST

Я не любитель придираться к словам. Я действительно не понимаю что это такое:
"Это происходит при использовании метода POST", что такое "ЭТО"?

>путь будет не обновить. пусть будет "если ктоньть нажмет обновить эту некорректную запись".

Забыл запятую. Должно быть так: "Просто если ктоньть нажмет обновить (F5), эту некорректную запись надо будет удалять.

>К кнопку "добавить" почему собственно кнопкой не сделать? Зачем сслыки?

Моё личное предпочтение - мне так больше нравится, имею ввиду внешний вид.
А почему зря? Есть ли какие нибудь аргументы в против кроме того что "приложение организовано неправильно"?
 

Фанат

oncle terrible
Команда форума
ЭТО - это ТВОЯ ПРОБЛЕМА. Если ты её не забыл ещё, в незапном приступе склероза.
Когда запись два раза добавляется.
До сих пор я полагал, что это происходит при использовании метода пост.
Но последнее твоё описание окончательно всё запутало.
похоже, ты вообще никогда не пользовался ни тем, ни другим, а описываешь действия скрипта чисто умозрительно.
Во всяком случае, в этом примере беллетристики:
Приходит изделие. Визард нам говорит: введите серийник и название, нажмите далее > выбирите фирму от которая его сдала -> Запись добавлена успешно, спасибо за терпение . Теперь нажимаем F5 и браузер снова обращается к адресу вида script.php?firm_id="12". Апачи создаёт переменную $_GET[firm_id]=12 и cнова вызывает script.php, а скрипт инструктирует модуль mod_php, который егообрабатывает сделать запись в mysql. Номер записи при этом синкрементируется (auto_increment), Поле firm_id в таблице работ будет равен 12 а остальные поля которые передаются методом post быдут нулевыми.
ни разу не указан метод.
ни для одного из действий.

Слушай, у меня появилось хорошее предложение.
Давай ты прочитаешь вот этот текстик:
PHP FAQ: Самые основы. Как работает PHP.
а после этого, если вопросы останутся, ты их задашь. Хорошо?
 

letopisec

Новичок
>если гет, то при чём тут какие-то "поля которые передаются методом post"?

ну можно же два метода post и get совмещать?

>Если пост, то почему поля пустые?

если я пишу

echo "<form method=post action=wizard.php>";
echo "<input type=\"text\" cols=40 name=\"extended\">;
echo "<input type=\"submit\" value=\"click\">";
echo "</form>";

вводим "abc" нажатимаем на click и переменная $_POST[name] имеет значение "abc"
теперь нажимем F5 и эта переменная имеет пестое значение. Или я не прав...?
 

Фанат

oncle terrible
Команда форума
ну можно же два метода post и get совмещать?
нет, нельзя.
метод бывает только один.
Массива в пхп может быть два. а метод в НТТР - один.
нажатимаем на click и переменная $_POST[name] имеет значение "abc"
теперь нажимем F5 и эта переменная имеет пестое значение. Или я не прав...?
попробуй - узнаешь.

А ссылочку, что я дал - не поленись, прочти. Тебе будет очень полезно.
Я, наконец-то, кажется стал догадываться, что именно тебе непонятно.
 

letopisec

Новичок
>А ссылочку, что я дал - не поленись, прочти. Тебе будет очень полезно.

прочитал. Вроде ничего особо нового для меня.

>попробуй - узнаешь.

Да... Ошибся я малость. То есть если браузер обновляет страницу то делает запрос к серверу точно так же как педыдущий раз - то есть посылает данные методом post серверу.

>нет, нельзя.
>метод бывает только один.

а если так:

echo "<form method=post action=wizard.php?var=val>";

это не совмещение get и post?
 
Сверху