2015-06-25 6 views
0

У меня есть очень простая HTML-форма, которую я создал локально, а также другую форму, то же самое, на отдельном локальном сайте.Заполните поля формы HTML с объектом JSON

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

Я изучил возможность упаковки данных формы в объект JSON, но, похоже, не нашел правильного указания относительно того, как это сделать на самом деле.

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <link rel="stylesheet" type="text/css" href="main.css"> 
    <title>Form Test</title> 
</head> 

<body> 
    <center> 
     <h1>Form Test</h1></center> 
    <div class="navigation"> 
     <nav> 
      <a href="secondform.html">Second Form Submission</a> 
     </nav> 
    </div> 

    <p>Upon clicking the submit button, the populated fields should send their field data to the Second Form which will then be emailed to someone.</p> 

</body> 
<div id="message"> </div> 
<form name="form_simple" id="form-simple" action="C:/xampp/htdocs/formsubmit/formsubmit.php" method="post" target="_blank"> 
    Name: 
    <br> 
    <input type="text" name="name" value=""> 
    <br> Email: 
    <br> 
    <input type="email" name="email" value=""> 
    <br> University: 
    <br> 
    <input type="text" name="university" value=""> 
    <br> Year In School: 
    <br> 
    <input type="text" name="year" value=""> 
    <br> Grad Date: 
    <br> 
    <input type="date" name="graddate" value=""> 
    <br> 
    <br> 
    <input type="submit" value="Submit"> 
</form> 

</html> 

ответ

0

Поскольку вы используете php, нет необходимости обезьяньям с кодировкой данных JSON. При нажатии кнопки «Отправить» запрашивается страница formsubmit.php.

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

Я предполагаю, что вы еще не знакомы с массивами $ _POST и $ _GET, доступными для каждого скрипта php. Поскольку ваш метод вышеуказанной формы равен POST, вы можете получить переданные значения из массива $ _POST.

То есть этот массив будет содержать элементы в массиве, который индексируется с именем исходных входных данных. В вашем случае они будут найдены в $_POST['name'], $_POST['email'], $_POST['university'], $_POST['year'] и $_POST['graddate'].

Теперь самое время упомянуть, что вы не должны включать полный путь пути в атрибуте действия формы. Просто обратитесь к нему относительно корневой папки веб-сервера. В вашем случае это c:/xampp/htdocs - это соответствует адресу localhost/ в браузере. Таким образом, вы должны изменить действие на /formsubmit/formsubmit.php или просто formsubmit.php, если приведенный выше html и файл php существуют в одной папке.

Что-то еще, что вы можете использовать, это функция var_dump. Если вы разместите var_dump($_POST); в файле formsubmit.php, вы можете увидеть введенные значения прямо на вашем экране - полезный инструмент для отладки, позволяющий проверить, что то, что вы считаете отправленным через POST, было отправлено фактически и что оно было названо и структурированный, как вы ожидаете. Вы можете тривиально заполнить поля в целевой форме, извлекая, а затем эхом переданные данные.

Пример, который не будет производить никаких ошибок проверки, не имеет стиль, инертен и что будет заполнить два поля может выглядеть примерно так:

formsubmit.php

<?php 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
?> 
<html> 
<body> 
    <form> 
    <input type='text' name='nameInput' value='<?php echo $name; ?>' /> 
    <input type='email' name='emailInput' value='<?php echo $email; ?>' /> 
    </form> 
</body> 
</html> 
Смежные вопросы