2013-07-23 28 views
0

我有一個帶有2個值的javascript函數。我想將這些值發佈到一個PHP頁面,我可以用它更新一個mySQL數據庫。這是我到目前爲止,這是行不通的。使用POST或GET的Javascript/AJAX到PHP頁面

function updateDB(page1,page2) 
{ 
alert("TEST"); 

$.ajax({ 
type: 'POST', 
url: update.php, 
page1: page1, 
page2: page2 
}); 
} 

Update.php代碼

<?php include "connect.php"; 
$page1 = $_POST['page1']; 
$page2 = $_POST['page2']; 

mysql_query("UPDATE `pages` SET `page1` = '$page1'"); 

?> 

當我運行的功能,我得到一個彈出,但數據庫沒有更新。

有什麼建議嗎?我不介意使用GET或POST。

由於提前,

+0

請從'update.php',也儘量把網址中的單引號,如'網址顯示的代碼。 –

+0

要檢查它是否應該工作,使用'success:function(){alert(「TEST」); }'。 –

+0

嘗試放入引號。依然沒有。我已經安裝了update.php代碼 – user1834218

回答

1

通過POST使用jQuery發送數據的正確方法是用data財產。

一個例子是:

function updateDB(page1,page2) 
{ 
    $.ajax({ 
     type: 'POST', 
     url: 'update.php', 
     data: { 
      page1: page1, 
      page2: page2 
     }, 
     success: function() { 
      window.location = "http://google.com"; 
     }, 
     cache: false 
    }); 
} 

我還添加成功alert,以及禁用緩存。即使這是帖子,IE會緩存發送請求到已經請求get的頁面。

我會強烈建議使用庫MySQLi,或在最起碼轉義查詢:

include "connect.php"; 
$page1 = mysql_real_escape_string($_POST['page1']); 
$page2 = mysql_real_escape_string($_POST['page2']); 

mysql_query("UPDATE `pages` SET `page1` = '$page1'") or die(mysql_error()); 

如果你想從HREF事後更改頁面簡單地做到這一點:

<script> 
    function linkme(_this) { 
     window.event.preventDefault(); 
     //do all the code with ajax 
     window.location = _this.href; 
    } 
</script> 


<a href="http://google.com" onclick="linkme(this)">Clicky</a> 
+0

我試過使用這段代碼,但沒有收到成功消息。 – user1834218

+0

哎呀,我忘了單引號。它是否與'url'屬性的單引號一起工作? –

+0

我收到成功消息。但我沒有在mySQL數據庫中獲得更新。 – user1834218

0

您忘記了您的字符串(update.php和page1/2),您的瀏覽器控制檯應該在這些字符串中聲明:「Uncaught ReferenceError:update is not defined」。有關調試的更多信息,請參見:https://developers.google.com/chrome-developer-tools/docs/javascript-debugging

此外,您還需要將數據放入數據對象中。

$.ajax({ 
type: 'POST', 
url: 'update.php', 
data: { 
    page1: page1, 
    page2: page2 
} 
}).done(function(data){ 
    alert('got:' + data); 
}); 

含硒較多的jQuery的文檔:「update.php'`:http://api.jquery.com/jQuery.ajax/