2011-09-03 111 views
1

我現在在一個泡菜......我有這個函數從頁面獲取2個變量,然後在抓取數據後運行一個sql查詢。從Javascript運行SQL查詢

function delete(id,date){ 
    confirmdel=confirm('Are you sure?'); 
    if(confirmdel){ 
     var curid = id; 
     var when = date; 

     //sql code should go here 

    } 
    else{ 
     //don't do anything 
     return false; 
    } 
    } 

如何從函數運行sql查詢或將數據發送到php文件?我嘗試使用jquery,但它會忽略它,所以如果我可以使用jquery,請解釋/舉例說明如何使用它。

回答

4

JavaScript不能在其自己的數據庫處理,它只是可以告訴瀏覽器做什麼,服務器提交的頁面瀏覽器後,才加載。所以我想你必須使用AJAX。這是一個使用非常簡單的jQuery:

... 

$.post('process.php', {id:curid, date : when}, function(data) { 

    alert(data); 
    //data contains all output from process.php, 
    //either in json-format if you jsonencode a results-array 
    //or just a simple string you echo in the php 

    return false; //prevent from reloading the page 
}); 

... 

你process.php可能類似於:

<?php 

$curid = $_POST['id']; 
$when = $_POST['date']; 

//run the query 

echo jsonencode($results_array); 

//or check if query succeeded and echo e.g. 'ok' or 'failed' 
?> 

你的想法...;)

//編輯:

您應該使用jQuery UI作爲對話框以避免評論中所述的消息。這可能是這樣的:

<div id="dialog_box" style="display: none;"> 
    Really delete? 
</div> 

$('#dialog_box').dialog({ 
    title: 'Really delete this stuff?', 
    width: 500, 
    height: 200, 
    modal: true, 
    resizable: false, 
    draggable: false, 
    buttons: [{ 
    text: 'Yep, delete it!', 
    click: function(){ 
     //do the post 
    } 
    }, 
    { 
    text: 'Nope, my bad!', 
    click: function() { 
     $(this).dialog('close'); 
    } 
    }] 
}); 
+2

男人,兩個Cartmans是太多的一個職位:D(對這個問題完全無關的評論) – tugberk

+1

@tugberk大聲笑,甚至沒有注意到,但那是......呃......「擰你們,我是回家!' :-D – Quasdunk

+0

當我這樣做的時候,它可以工作,但我收到一條消息,說明是否再顯示額外的警報框。我該如何擺脫?其他人是否會收到類似的消息? – cbr0wn

0

做一個web服務。 jQuery的功能可以讓你調用web服務,但是你不能用jQuery構建web服務。

0

AFAIK,你不能直接在網頁上通過JavaScript運行sql查詢。即使如此,這也是最糟糕的事情。

最好的實現方法是編寫一個服務(REST服務將是一個很好的選擇),它將連接到數據庫,使用數據。然後通過JavaScript使用該服務將是更好的方法。

看看JQuery.ajax() API來了解如何將Http發佈到服務器。

+0

我可以在JavaScript中使用這個jQuery的方法? – cbr0wn

+0

jQuery是用JavaScript編寫的JavaScript代碼,當然你可以使用它。你會如何使用它? – Halcyon

+0

@ cbr0wn JQuery不是另一種單獨的語言。這是一個JavaScript庫和一個很好的(我猜這就是很多人認爲它是另一種語言的原因)。您可以在網頁上的''元素內使用JQuery。 – tugberk

0

您應該將數據發送到一個php文件。

$.post("delete.php", { id: id, date: date }, function(){alert('delete success!');}) 
.error(function() { alert("error"); });