2011-04-28 53 views
0

我想輸入一個通過javascript函數傳遞給數據庫的值。有沒有辦法做到這一點?謝謝。將javascript函數的值插入數據庫

var eng = 0; 

var nothome = 0; 

var nointerest = 0; 
var callback = 0; 
var booked = 0; 
function myFunction(i,txt, elemid){ 
var plural; 
if (i != 1) plural = "s."; 
else plural = "."; 
document.getElementById(elemid).innerHTML = txt + i + " time" + plural; 
alert(txt + i + " time" + plural); 
} 

<button onclick="eng += 1; myFunction(eng,'Engaged: ','Engaged');">Engaged</button><span name="Engaged" id="Engaged"></span> 

            <button onclick="nothome += 1; myFunction(nothome,'Not Home: ','nothome');">Not Home</button><div id="nothome"></div> 
            <button onclick="nointerest += 1; myFunction(nointerest,'No Interest: ','nointerest');">No Interest</button><div id="nointerest"></div> 

            <button onclick="callback += 1; myFunction(callback,'Call Back: ','callback');">Call Back</button><div id="callback"></div> 

            <button onclick="booked += 1; myFunction(booked,'Booked: ','booked');">Booked</button><div id="booked"></div> 

我想插入從事預訂etcc到數據庫的價值。有沒有辦法做到這一點?謝謝。

+0

簡答:AJAX。長的答案,JavaScript不能直接做,但可以與數據庫工作的PHP服務交談,AJAX是這種技術的具體名稱。 – 2011-04-28 02:18:06

+0

我不知道ajax ..有沒有辦法在PHP中做到這一點? – Phphelp 2011-04-28 02:23:29

+0

@Marc乙 - 爲什麼這需要AJAX?由JS表單提交觸發的回傳也會起作用。 – 2011-04-28 02:32:51

回答

1

您似乎沒有在那裏使用<form>這些按鈕,所以讓我們來爲您的任務使用一個簡單的AJAX。你已經有了一個你需要的功能是另一個把你的東西放到服務器並保存的過程。

function myFunction(i, txt, elemid) 
{ 
    var plural; 
    if (i != 1) plural = "s."; 
    else plural = "."; 
    document.getElementById(elemid).innerHTML = txt + i + " time" + plural; 
    //alert(txt + i + " time" + plural); 

    var params = "value=" + txt; 
    xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST", "insert.php", true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.setRequestHeader("Content-length", params.length); 
    xmlhttp.setRequestHeader("Connection", "close") 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
      var response = eval("(" + xmlhttp.responseText + ")"); 
      alert(response.Message); 
     } 
    } 
    xmlhttp.send(params); 
} 

insert.php,你會得到你的POST數據:

$Value = $_POST['value']; 
// do database connections and inserts here 
$Response = array('Success' => true, 'Message' => 'Inserted!'); 
echo json_encode($Response); 

我希望你的想法。有一些關於這個的教程,所以給自己一個手。

+0

謝謝...會嘗試... – Phphelp 2011-04-29 00:55:42