Вопрос про var_dump($_POST)

12
D
На сайте с 28.06.2008
Offline
980
1559

Три часа убил на разные гугления и эксперименты, ничего не получается, прошу совета.

есть простая форма

<form action="/" method="post">
<button type="submit" name="click_vote" value="454">кнопка</button>
</form>

Правильно ли я понимаю что при нажатии на кнопку пост запросом уйдет значение 454 с именем click_vote

И оно должно быть доступно в

$_POST['click_vote'] или просто $_POST?

Почему var_dump($_POST) выдает ?

array (size=0)
empty
Апокалипсис
На сайте с 02.11.2008
Offline
391
#1

Dram, Создайте

<input type="hidden" name="click_vote" value="454">

И все получится.

Записки нищего (http://zapiskinishego.ru) - мой личный блог Услуги php программиста. Очень нужна любая работа. Не покупают? Поведенческий аудит интернет-магазина за 5000 руб. (/ru/forum/990312)
D
На сайте с 28.06.2008
Offline
980
#2

Как Леня и говорил - тебе нужен <input type="hidden"!!!

Спасибо!!! Все получилось

Апокалипсис
На сайте с 02.11.2008
Offline
391
#3

Dram, Оч рекомендую сайт phpfaq.ru

T7
На сайте с 19.09.2018
Offline
34
#4
Dram:
Три часа убил на разные гугления и эксперименты

Интересно почему не получается

<?php

if( $_POST ){
header('Content-type:text/plain;charset=utf-8');
print_r($_POST);
echo "\n\n====\n";
var_dump($_POST);
} else {
header('Content-type:text/html;charset=utf-8');
?><html>
<body>
<form action="/button.php" method="post">
<button type="submit" name="click_vote" value="454">кнопка</button>
</form>
</body></html>
<?php
}

ответ

Array

(
[click_vote] => 454
)


====
array(1) {
["click_vote"]=>
string(3) "454"
}
D
На сайте с 28.06.2008
Offline
980
#5

timo-71, header не было у меня, видать по этому

S
На сайте с 30.09.2016
Offline
459
#6
timo-71:
Интересно почему не получается

Скрывает ТС чего-то. 🙄 Утаивает важные детали.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
T7
На сайте с 19.09.2018
Offline
34
#7
timo-71, header не было у меня, видать по этому

Точно нет. Это лишь отображение результата, без "Content-type:text/plain" глаз напрягать надо для просмотра print_r или var_dump:D

Поддержка валуе у баттона есть, значит где то в конструкции клиент(хтмл)-сервер(пхп) косяк

D
На сайте с 28.06.2008
Offline
980
#8

Начал мучать код дальше и опять проблемка

<form action="/<?php echo $answer->section_alias; ?>/<?php echo $answer->category_alias; ?>/<?php echo $answer->item_alias; ?>" method="post">
<button type="submit" name="answervote" value="<?php echo $answer->id; ?>">сказать спасибо</button>
<input type="hidden" name="answervote" value="<?php echo $answer->id; ?>">
</form>
</span>
<?php
//обновляем на +1 голосовалку ответа при нажатии на кнопку "спасибо"
$upVote = ++$totalvote;
if($_POST['answervote'] == $answer->id) {
$db->setQuery("UPDATE #__тут запрос);
$db->query();

}
?>

В общем при нажатии на спасибо юзера отправляет на страницу специалиста - и запрос НЕ отрабатывает!

НО!!! если изменить в <form action="/ на ссылку страницы на которой нажимается кнопка, то при нажатии на кнопку, она перезагружается и запрос отрабатывает как задумалось и увеличивает нужный счетчик.

Где моя ошибка?

T7
На сайте с 19.09.2018
Offline
34
#9
Где моя ошибка?

Вариативно.

На серче ошибка в том что:

echo $answer->section_alias

никому ничего не говорит, кроме того что кто-то не проверив во первых объект ли $answer и имеет ли $answer атрибут $answer->section_alias (может выше в скрипте было, но никто этого не увидит) .

Для вас:

не пользуетесь инструментами браузера (например для мозилы) - консоль (ctrl-shift-i, ctrl-shift-k), посмотреть хтмл-код (ctrl-u) и т.д.

тогда вы бы сначала сами поняли, что ваш браузер понимает под, например

<form action="/<?php echo $answer->section_alias; ?>/<?php echo $answer->category_alias; ?>

да и нам бы показали реальный код исполняемый браузером.

В итоге - профит: вероятно сами бы разобрались, ну а если нет, то нам тут понятней бы было.

Может там

<form action="//
:D

А так, навскидку конструкция

<button type="submit" name="answervote" value="<?php echo $answer->id; ?>">сказать спасибо</button>

<input type="hidden" name="answervote" value="<?php echo $answer->id; ?>">

в корне неверна, так как не надо 2 name="answervote" в одной форме.

D
На сайте с 28.06.2008
Offline
980
#10

timo-71, ничего не понял. :))

У меня сейчас при нажатии на кнопку юзер уходит на страничку специалиста на моем же сайте - урл корректный. Но при этом не запрос в базу не срабатывает.

Но, повторюсь, если урл специалиста сменить на урл страницы на которых расположена кнопка - то при нажатии страница перезагружается и запрос отработает.

Вот я и не понимаю почему.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий