Форма PHP отправляет значение из идентификатора вместо значения - PullRequest
0 голосов
/ 26 марта 2011

Обычно я выполняю что-то вроде этого в форме со скрытым полем:

   <input type="hidden" name="someName" value="someVal" />

, и я смог получить значение с помощью чего-то простого, например

$someVar = $_REQUEST['someVal'];

Но сейчас я пытаюсь отправить все значения в идентификатор элемента DOM примерно так:

<input type="hidden" name="someNewName" id="element_id_name" />

Я делаю это правильно?Можно ли это сделать?Или я далеко?Как я могу получить значение из последней строки?Или как мне правильно отправить эти данные на запрос?

Спасибо, Алекс

Ответы [ 4 ]

4 голосов
/ 26 марта 2011

вы не можете получить данные в php через идентификатор, который работает с именем ... поэтому вам нужно изменить

PHP

<form method="POST" action="nextpage.php" name="myform" id="myform">
<input type="text" id="rout_markers"  name="rout_markers"/>
<input type="hidden" name="someNewName" id="someNewName" value="" />
<input type="submit" id="send-btn"  class="button" value="SEND NOW" onclick="submitform()" />
</form>

jQuery

$("form").bind('submit',function(e){
  e.preventDefault();
  var hiddenData=$("input[name=rout_markers]").val();
  // or var hiddenData=jQuery('#rout_markers').val(); 
  $("input[type=hidden][name=someNewName]").val(hiddenData);  
});

on

nextpage.php

извлечение данных следующим образом

$ _ POST ['someNewName'];

update

установите onclick=submitform() в кнопке отправки, а также назначьте атрибут name и id для формирования и записи этого

javascript

<script type="text/javascript">
function submitform()
{
  var hiddenData = document.getElementById('rout_markers').value;
  document.getElementById('someNewName').value = hiddenData;
  document.myform.submit();
}
</script>
2 голосов
/ 26 марта 2011

Вы можете получать входные данные только с атрибутом name, который становится ключом вашего $_POST (или эквивалентного) массива.

Пожалуйста, используйте $_POST (или $_GET) вместо $_REQUEST, последний также смотрит на куки, и можно обмануть то, что вы ожидаете. Вы должны следовать принципу наименьших привилегий .

Чтобы отправить его с id на ваш сервер, присвойте ему уникальное имя или отправьте свойство value на свой сервер через XHR.

1 голос
/ 26 марта 2011

Нет такой вещи, как DOM в протоколе HTTP.

Если вы хотите отправить форму HTML через HTTP-запрос, вы должны использовать атрибут value, вот и все

0 голосов
/ 26 марта 2011

В первом случае вы должны получить значение поля в php, используя:

$someVar = $_REQUEST['someName'];

Во втором случае вы можете получить значение в php используя:

$someNewVar = $_REQUEST['someNewName'];

и в javascript вы можете получить его значение как:

var somenewvar = document.getElementById("element_id_name").value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...