将javascript变量传递给php

时间:2013-07-19 19:51:32

标签: php

我在JavaScript文件中有一些变量,我想将这些变量插入数据库,我搜索了太多但没有找到任何解决方案,任何建议如何做到这一点?

3 个答案:

答案 0 :(得分:2)

您需要使用AJAX!

此示例使用Jquery来实现简单性和可读性。

function saveThisValue(value) {
    $.ajax({
        url: "/save.php",
        type: "POST",
        data: { value: value }
    });
}

save.php 文件中,您可以执行类似...

的操作
<?php
if (isset($_POST['value'])) {
    $value = $_POST['value'];

    //INSERT YOUR DB CODE TO INSERT VARIABLE INTO DATABASE
}
?>

现在,我提交这个非常简单,但您可以通过更改Ajax请求中的数据变量来向数据库添加多个变量。

data: {id: 3, value: 10, something: "HEYO!" }

答案 1 :(得分:0)

这是一个非常加权的问题。 JavaScript和数据库存在于“3层基于Web的模型”的完全相反的一侧。您无法直接将客户端数据直接存储到服务器的数据库中,首先必须通过HTTP传输。

基本上,您需要做的是从JavaScript获取变量并将HTTP POST请求提交给您在服务器上编写的控制器,并将该变量值作为POST参数传递。这可以通过表单提交(http://www.w3schools.com/jsref/met_form_submit.asp)或AJAX(http://en.wikipedia.org/wiki/Ajax_%28programming%29)来完成。控制器可以用Java,PHP,Scala或任何语言编写。从你的问题的标题看起来它是PHP。你的PHP代码看起来像这样:

<?php
   $var = $_POST['var_name'];
?>

当然,您希望根据您使用的数据库类型(关系与nosql)确保并清理数据。然后,您将使用PHP将数据插入数据库,如下所示:

<?php
   $con = mysqli_connect("example.com","user","pass","my_db");
   mysqli_query($con,"INSERT INTO my_table (var_name) VALUES (" . $var . ")");
?>

答案 2 :(得分:0)

如果你只想要核心JS,那么构建一个查询字符串并以这种方式调用你的php。

myVars = new Object;
myVars["name"] = "user2599584";
myVars["foo"] = "bar";
myVars["fred"] = "Barney";

var urlquerystring = new String("?");
for (index in myVars) {
   urlquerystring += index + '=' + myVars[index] + '&';
}
 urlquerystring.substring(0,urlquerystring.length-1); //strip of last &
 var finalURL = new String("http://file.php");
 finalURL += encodeURIComponent(urlquerystring);
 window.open(urlquerystring);

然后你的php:

<?php
  foreach ($_GET as $key => $value) { 
       ${$key} = value;
   }
   ?>

然后你必须清理你的输入变量以防止在用它触摸数据库之前注入sql。这是你在这里可以找到的另一个话题。