2012-06-09 85 views
-2

我對Javascript及其許多輝煌的圖書館非常陌生,我發現即使是最簡單的腳本也很難執行。通過js/jQuery發佈數據

我確實想學習這門語言,因爲它可以創建客戶端網站,但是現在我正在嘗試做一些相對簡單的事情,這是在我的網站上標記個人消息。在一個大列表中有很多消息,而我所看到的是當用戶單擊「Flag PM」圖像時,它將在後臺運行flag.php,這會將MySQL中的標誌字段從0更改爲1。

這個腳本全部依賴於一個字段,即id,所以我可以通過數據庫運行它。無論如何,這是我的代碼;

flag.php

require('_inc/_core/core.php'); // inc core_funcs for sql & clean 
$pm_id = clean($_POST['p_id']); // create new variable, clean the post 
echo "The ID for the PM is " . $pm_id; 
mysql_query("UPDATE `messages` SET `flag_status` = 1 WHERE `id` = {$pm_id}"); // update the db 

JS/jQuery的

 // Flag a Personal Message 
$("#flagPM").submit(function(event) { 
    event.preventDefault(); 
    $.post("flag.php", { p_id: pm_id }); 
    alert(event); 
}); 

HTML處理形式

<form action="#" id="flagPM"><input type="hidden" id="pm_id" value="$id" /> 
     <input type="submit" class="submit" value="FLAG" /></form> 

所以一個名爲pm_id的隱藏輸入字段,其中包含我想要發佈的內容。

會很感激一些幫助,JavaScript是正在從

謝謝

+3

那麼問題是什麼? PS:你發送'$ .post()'並處理'$ _GET'。看起來不一致的 – zerkms

+1

您正在使用POST方法發佈數據,然後使用$ _GET來獲取它。它應該在$ _POST ['id']中。同樣在你的JavaScript中,你還沒有爲你的id變量賦值。您需要填寫您需要的值 –

+0

對不起,這甚至不是正確的文件,我正在用正確的代碼更新它,抱歉! –

回答

2

的JavaScript正在從一個獨立的文件中運行一個獨立的文件,該文件是從flag.php兩個目錄來的最高運行從flag.php

2個 目錄的最多在這種情況下,簡單地做:

$.post("flag.php", { id: id }); 

不會達到flag.php文件,你需要指定正確的路徑,包括你提到的文件夾名稱:

$.post("folder1/folder2/flag.php", { id: id }); 

順便說一句,你應該使用一個回調爲$.post功能才知道是由返回什麼信息flag.php

$.post("flag.php", { id: id }, function(data){ 
    alert(data); 
}); 

從你flag.php,確保echo的東西,讓你得到在你的Ajax響應處理:

// your other code here, such as query, etc 
echo 'whatever...'; 
+0

我剛剛更新了我的帖子,其中大部分內容都是您說的,當我點擊按鈕時,我沒有看到包含數據的警告窗口,這意味着它沒有運行JavaScript的? –

+2

@Jake Ball:這意味着編程不僅僅是複製和粘貼 – zerkms

+0

那麼你能否將我鏈接到相應的文檔,因爲我在這裏的深處,我從來沒有在我的時間做過很多js/jquery,所以我我不知道可以實現什麼以及如何實現,就像我在OP中所概述的那樣。 –