2015-06-25 28 views
0

我有一个非常基本的HTML表单,我在本地创建了一个非常基本的HTML表单,并且在另一个本地站点上创建了另一个表单,同一个表单。用JSON对象填充HTML表单字段

我想知道是否有办法填写第一个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页面。

在这里面,你可以找回你表格中所有的数据。然后,您可以使用它填充下一个表单的字段。

我想你还不熟悉可用于每个php脚本的$ _POST和$ _GET数组。由于上述表单的方法是POST,因此您可以从$ _POST数组中获取提交的值。

也就是说,该数组将包含一个数组中的元素,该数组使用原始表单输入的名称进行索引。在你的情况下,这些可以在$_POST['name'],$_POST['email'],$_POST['university'],$_POST['year']$_POST['graddate']中找到。

现在也是一个很好的时机提及您不应该在表单的action属性中包含完整的本地脚本路径。只需将其与Web服务器的根文件夹相关即可。在你的情况下,这是c:/xampp/htdocs - 这相当于在浏览器中的地址localhost/。所以,如果上面显示的html和php文件都存在于同一个文件夹中,您应该将操作更改为/formsubmit/formsubmit.php或简单地formsubmit.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>