将JS传递给PHP

时间:2017-07-08 08:59:43

标签: javascript php jquery mysql ajax

我试图通过php将存储在变量中的字符串传递给mysql表。

目前我正在使用<input>类型hidden,我将我想要的变量指定为其值,并通过form提交发布。 它有效,但很难看。

我知道有$.post$.ajax,但我似乎无法弄清楚如何在js端和php端使用它们。我在网上找了他们,有很多这类问题,但没有一个对我有用(可能是因为我缺少知识)

我该怎么办?

2 个答案:

答案 0 :(得分:1)

这是一个非常基本的例子。我们从HTML页面上的表单开始。单击此按钮时,我们将激活javascript函数。

<html>
  <form>
    <input type="email" id="email-field" />
    <input id="submitButton" type="submit" value="Submit" />
  </form>
</html>

现在,这是由于点击按钮而激活的javascript功能。在内部,我们提取可能已在输入字段中填写的任何信息,其ID为&#34; email-field&#34;,然后通过ajax将其发送到位于服务器上的php文件。

$('#submitButton').click(function() {
  var email = $('#email-field').val();

  $.ajax({
    type: 'POST',
    url: './yourphpfilename.php',
    data: {
      email: email
    }
  }).done(function(data) {
    console.log(data) // Will send you the result that is echoed in the PHP file
  })
})

只要您将ajax请求中的正确url放入PHP文件中,就可以轻松地接收发送的数据,

<?php

 if($_SERVER['REQUEST_METHOD'] == 'POST') {

   $email = $_POST['email'];
   echo 'I have received your request.';

 }

要发回数据,我在这里使用echo命令。

尝试阅读PHP中$ _POST变量的一些文档。请注意我打电话给[&#39;电子邮件&#39;]。括号内的标识符直接与js文件中数据对象内的键相关联。例如,假设我们决定在js文件中将我们的电子邮件密钥命名为不同的内容。

data: {
   useremail: email
}

然后你就可以像这样改变PHP代码,

$email = $_POST['useremail'];

这对我来说非常困惑,如果你不知道它是如何运作的,有时甚至很难提出质量问题。但是在将来,我会尝试发布一些显示您尝试过该问题的代码。

答案 1 :(得分:1)

您需要做几件事:

  1. 您有一个form标记,您需要阻止它提交,如下所示:
  2. $("#myformid").submit(function(event) { //Do something event.preventDefault(); });

    如果您的form不再提交,那么您就在正确的轨道上。

    1. 您需要使用$.ajax发送请求,如下所示: $("#myformid").submit(function(event) { //Here I assume that all variables have been properly initialized $.ajax({ url: "yoururl", method: "POST", data: yourdata, //yourdata should contain the things you intend to send to the server }).done(function(response) { //callback }); event.preventDefault(); });

    2. 您需要一个能够正确处理yoururl发送的POST请求的PHP代码。这是您在PHP中检查请求方法是否为POST的方法: if ($_SERVER['REQUEST_METHOD'] === 'POST') { //It is a POST request } else { //It is not a POST request }