我在JavaScript文件中有一些变量,我想将这些变量插入数据库,我搜索了太多但没有找到任何解决方案,任何建议如何做到这一点?
答案 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。这是你在这里可以找到的另一个话题。