2013-07-19 135 views
-6

我在JavaScript文件中有一些變量,我想將這些變量插入數據庫,我搜索得太多但沒有找到任何解決方案,任何建議如何做到這一點?將javascript變量傳遞給php

+0

你應該看看阿賈克斯。 – jh314

+2

這需要更多信息。這是發生在表單提交/打開一個新頁面還是需要異步/ Ajax就像更新一個事件? –

+0

使用隱藏字段 – zod

回答

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!" } 
+0

我複製了我的第一個代碼。js文件和我的php pag中的sconde,但它不工作! – user2599584

+0

??????????????????? – user2599584

0

這是一個非常重要的問題。 JavaScript和數據庫存在於「三層基於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 . ")"); 
?> 
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注入與它接觸分貝之前。這是你可以在這裏找到很多關於另一個話題。