2011-07-13 82 views
2

我正在製作一個相當簡單的評分系統,而且我遇到了一個小問題。當您對某事進行評分時,我試圖運行一個將連接到數據庫的PHP腳本,從中下載值,將值+1,然後再次更新數據庫中的值。通過鏈接通過Ajax運行PHP腳本?

我不認爲重裝了continious評級系統的頁面將是一個非常不錯的主意:S

我不知道我怎麼可以切換使用Ajax PHP腳本,這樣,當你點擊圖片+符號,它運行PHP添加1腳本,+按鈕變成一個勾號。我在ajax垃圾,我會去嘗試jQuery + $ .ajax({});但我嘗試了73次失敗。哈哈。

任何人都願意幫我寫一個Ajax腳本嗎? :DDD

謝謝! :)

+0

告訴我們你的代碼,即使它無法 –

+0

歡迎SO。如果您發佈代碼嘗試,並針對您遇到的問題進行具體說明,那麼您更有可能獲得幫助。 – bcoughlan

+0

在此給出一些示例代碼。我不認爲這太難 –

回答

1

HTML

<img src="plusone.png" rel="some_unique_id" class="rate" /> 

javscript

$(".rate").click(function() { 
    var elem = $(this); 
    $.get('/rate.php?id=' + elem.attr('rel'), function() { 
     elem.attr('src', 'checked.png').unbind('click'); 
    }); 
}); 

,並在PHP

mysql_connect('localhost','db_user','pssword'); 
mysql_query('UPDATE database_name.table_name SET rating=rating+1 where id=' . mysql_real_escape_string($_GET['id'])); 
2

如果你希望有人點擊,這將訪問頁面的鏈接,讓我們假設你有這個marup:

<a class = 'plusOne' id = 'someIDForYourSQLTable'>+1</a> 

這個ID就是你要傳遞給你的服務器腳本的內容,所以你可以更新適當的行,一般來說這應該是一個主要的標識符。關鍵)查找您想要+1的記錄。

這裏是jQuery的將發送Ajax請求的文件:plusOne.php在同一目錄作爲當前頁面:

$(function() { 
    $(".plusOne").bind("click", function() { 
     $.ajax({ 
      type: "GET", 
      data: "v="+$(this).attr("id"), 
      url: "plusOne.php", 
      success: function(data) { 
       // Whatever you want to do after the PHP Script returns. 
      } 
     }); 
    }); 
}); 

請求將發送一個URL參數「V」你可以從$_GET超級全局陣列訪問您的PHP腳本。

+0

我無法表達我對你的愛!哈哈,非常感謝。非常! –

0

看看xAjax,到的庫將PHP函數/方法暴露給客戶端JavaScriptxAjax使事情變得非常簡單。

例如,你可以並行執行在瀏覽器中的幾個變化:

$objResponse = new xajaxResponse(); 
$objResponse->assign("myInput1","value",$DataFromDatabase); 
$objResponse->assign("myInput1","style.color","red"); 
$objResponse->append("myDiv1","innerHTML",$DataFromDatabase2); 
$objResponse->prepend("myDiv2","innerHTML",$DataFromDatabase3); 
$objResponse->replace("myDiv3","innerHTML","xajax","<strong>xajax</strong>"); 
$objResponse->script("var x = prompt("Enter Your Name");"); 
return $objResponse;