如何从javascript访问表单数据

时间:2015-03-23 09:43:31

标签: javascript php forms

我是一个javascript newb,所以对此事的任何帮助都将不胜感激!

我试图在提交后让用户提交数据。 我有一个javascript函数,用一个表单替换另一个表单。一种stackoverflow用户帮助我创建了这个功能。

function Vanish(event) {

event.preventDefault();

// Specify the id of the form.
var IDofForm = "quest";

// Specify the id of the div containing the form.
var IDofDivWithForm = "question";

// Specify the id of the div with the content to replace the form with.
var IDforReplacement = "entryform";

if(document.getElementById(IDofDivWithForm).innerHTML = document.getElementById(IDforReplacement).innerHTML){
 return true;
 }
 else{
 return false;
 }
 }

然后我有我的表格:

<div id="question">
<form action="" method="POST" name="quest" id="quest" onsubmit="Vanish(event)">
<textarea name="question" class="question-field" placeholder="Ask your question..."></textarea><br><br>
<input type="submit" name="qsubmit" onclick=" Change();">
<!-- Change() only swaps images on the screen-->
</form>

</div>

<!-- Vanishing Form -->
<div id="entryform" style="display:none;">
<form action="" method="POST" id="email">
<input type="text" name="fName" placeholder="First Name" class="forms" value="<?echo $_POST['question'];?>">
</br>
<input type="text" name="sName" placeholder="Second Name" class="forms">
</br>
<input type="text" name="email" placeholder="Email" class="forms">
</br>
<input type="image" src="images/submit.png" name="esubmit" onclick="submitForm()">
</br>
</div>

从上面我可以看到,我有两种形式。报名表格在提交后替换问题表格。 我今天的问题是如何获取输入的数据? 我更喜欢PHP,因为我理解它更多,所以如果有一个PHP方法,这将是伟大的,但所有解决方案将有用!。

对于PHP,我尝试使用$ _REQUEST和$ _POST方法尝试获取数据,但它不起作用。 我的表单都提交到他们所在的页面。

1 个答案:

答案 0 :(得分:2)

首先,JavaScript是客户端编程语言,因此要将数据提供给服务器,您需要向服务器发送http / https请求并发送/接收数据

  

好读What is the difference between client-side and server-side programming?

要做到这一点,你可以使用html Form或ajax

  1. 表格
  2. 在表单中,您只需将数据发送到操作中的url(如果没有指定url,它将向当前页面请求其他指定的操作URL)

    1. 的Ajax
    2. 你可以使用ajax发送数据,你只需要像下面那样发出ajax请求(我强烈推荐使用JavaScript(但如果你擅长JavaScript,你也可以使用Jquery框架)

      var yourFormId = document.getElementById("email");
      
      email.onsumbit = function(e){
      
         e.preventDefault();
      
         var formData = new FormData(yourFormId );
         var request = new XMLHttpRequest();
         request.open("POST", "your-url");
         request.send(formData);
      }
      

      //这里通过formData对象,您可以使用单行代码

      获取所有数据

      和jquery一样,看到这篇文章它有一个非常简单的例子jQuery Ajax POST example with PHP


      现在有几个好的读物

      1. FormData Objects
      2. Ajax : MDN它非常好的来源