2015-06-19 6 views
1

Я хочу получить значения из формы до того, как ее действие переадресует ее. , например, в этой форме, я хочу захватить «text_one» и отправить его в базу данных, прежде чем перенаправить ее в google. Я также хочу «text_one» в google тоже. Что мне делать? Как получить значение из формы перед отправкой

<form method="post" action="google.com"> 
 
    <input type="text" name="text_one"> 
 
    <input type="submit"> 
 
</form>

+0

Ajax должен быть в состоянии сделать это без особых проблем, только прямо перед отправкой формы позволяет Jquery поймать ваш запрос и перед выполнением действия по умолчанию позволяет это сделать вызов Ajax для некоторого PHP-файла, который сохраняет ваши данные , – Gerton

+0

Возможный дубликат [Как получить значение поля ввода с помощью PHP] (http://stackoverflow.com/questions/13447554/how-to-get-input-field-value-using-php) – hlh3406

+0

Используйте 'onchange = 'вашу функцию() "' – Bruce

ответ

1

попробовать это ...

<form method="post" onsubmit="return getdata()" action="google.com"> 
    <input type="text" name="text_one" id="text_one"> 
    <input type="submit"> 
</form> 
<script> 
function getdata(){ 
     var txtOne = document.getElementById('text_one').value; 
     // Do Something 
} 
</script> 
1

Вы можете изменить действие для "yourscript.php" и сделать s.th. как:

<?php //yourscript.php 
//save $_POST['text_one'] to Database 
header('Location: http://google.com'); 

?> 

Или вы можете назвать «yourscript.php» с помощью AJAX, чтобы сделать это в фоновом режиме.

+0

Вы получили значение в базе данных с обычным действием post, но как значение ** text_one ** будет доступно на google.com с вашим решением? – jagad89

+0

thats true ... нужно почистить мои очки – codeneuss

0

Попробуйте это:

echo (isset($_POST['text_one']) ? $_POST['text_one'] : ''); 

или использовать Ajax Ajax является ответом на ваш вопрос

+0

хорошо .. с Ajax вы можете очистить пол ... -.- – codeneuss

0

Для чистого PHP решения, вы можете работать с идеей, представленной @ v.eigler. Чтобы создать запрос POST на сервер Google (или какой сервер вам нужен), вам просто нужно использовать некоторую библиотеку для запроса HTTP, я настоятельно рекомендую вам взглянуть на Guzzle library.

Использование этого должно быть достаточно простым, вам просто нужно перенаправить обработку формы на собственный скрипт, выполнить свою собственную обработку и затем создать HTTP-сообщение в реальном пункте назначения.

-1

Я делаю это с небольшой сложностью. Я изменяю ваш обработчик действия формы.

<form method="post" action="yourscript.php"> 
    <input type="text" name="text_one"> 
    <input type="submit"> 
</form> 

Теперь его время, чтобы обработать его на стороне сервера. Я добавил комментарии для объяснения.

<!-- yourscript.php --> 
<?php 
echo $_POST['text_one']; 
// also do required server side operation. 

?> 
<!-- note: Action part is google.com --> 
<form id="myform" method="post" action="google.com"> 
<!-- Note: value of input already set.--> 
     <input type="text" value=<?php echo $_POST['text_one'];" ?> name="text_one"> 
     <input type="submit"> 
</form> 

<script language="JavaScript"> 
    // submit your form as soon as page loaded. 
    document.myform.submit(); 
</script> 
Смежные вопросы