2013-03-08 147 views
0

我是新的使用Jquery/Ajax/JSon,我想創建一個腳本,如果用戶點擊兩個圖標中的一個,可以更改mysql中的值。關於圖片點擊更改mysql值

我搜索了任何想法的唯一我不知道從哪裏開始。 我使用smarty與苗條,我已經設置了一個頁面datatables這很好。

我已經做成了一個數據表第2行圖標,我想要的東西如果有可能,如果用戶點擊兩個圖標中的一個,而不離開頁面值得到更新。我現在添加了一個像index.php/upd/del/1的href用於標記爲已刪除,index.php/upd/save/1用於保存。

後面更新我有一個閱讀保存或德爾的功能和1是主意。

有人可以給我一個想法或一些地方,我可以找到這樣的事情。

我希望我可以在這裏問這個,感謝你已經幫我這個

+0

http://api.jquery.com/jQuery.ajax/ – 2013-03-08 20:07:23

回答

1
<a id="option1"><img src="image1.jpg" /></a> 
<a id="option2"><img src="image2.jpg" /></a> 

<script type="text/JavaScript"> 
$(function() { 
    $("#option1").click(function() { 
     $.post("index.php/upd/del/1", function(json) { 
       if (json && json.status) { 
        alert("Change made!"); 
       } else { 
        alert("something failed!"); 
       } 
      } 
     ); 
    }); 
    $("#option2").click(function() { 
     $.post("index.php/upd/save/1", function(json) { 
       if (json && json.status) { 
        alert("Change made!"); 
       } else { 
        alert("something failed!"); 
       } 
      } 
     ); 
    }); 
}); 
</script> 

現在,在你的PHP腳本:

<?php 
// In order for jquery to change the data we are returning to json, we should se the headers to json. 
// Also, it is important to notice that all the ajax request will work allways with utf-8 
// so if you don't want to have a lot of problems with accents and special chars, use allways utf-8 
header("Content-Type:application/json; Charset=utf-8"); 

// Make some really cool stuff with the data at mysql 
// But if something went wrong: 
if ($varToSetIfErrorOcurrs === true) { 
    return json_encode(array ("status" => false)); 
} 

return json_encode(array ("status" => true)); 

一些最後的考慮:

  • 總是使用HTML元素來表達他們的想法:img顯示圖像,而不是點擊它們。 (錨點)點擊它們。或按鈕做出一些動作
  • JS最好放在頁面的底部,因此所有的DOM在執行時都已經被加載
  • $(function(){});一旦DOM準備好就執行這段代碼(只有html,document.onready一旦加載完成,包括圖片在內,就會執行,所以速度更慢)

快樂編碼!

+0

我已經嘗試過這一點,但這並不適用於我的情況。 我覺得bequase我使用: \t \t \t { 「MDATA」: 「ID」, \t \t \t 「mRender」:功能(數據,類型全){ \t \t \t \t迴歸 '

'; \t \t \t \t} 該腳本失敗。 到目前爲止,我想感謝您的幫助,我去尋找解決方案 – 2013-03-08 21:36:35

+0

在這種情況下,您需要添加一個偵聽器'.on'與jquery。假設你的div父母(你渲染mRender的地方)是'

'。然後你需要使用jQuery'$(「#result」)。on(「click」,「#option1」,function(){/ * ajax配置在這裏* /});'因爲html是通過ajax加載的。 – Cito 2013-03-08 22:48:21

+1

我可以感謝你@AbrahamSustaita你的幫助和提示。 玩過腳本後,你發佈我現在有一個我想要的工作腳本。 再次感謝您的幫助和提示 – 2013-03-10 18:52:13