2015-04-22 59 views
0

我需要在單擊圖像時用MySQL中的新值更新表格。通過AJAX向服務器發送數據?

$("#image1").click(function(){ 

下面是查詢的一個例子:

mysqli_query($conn,"UPDATE photos SET rating='$ratingnew1' WHERE link='$img1link'"); 

如何執行該查詢單擊圖像,只有當?

+1

哪裏是你的代碼的其餘部分? – Naruto

+0

你可以簡單地點擊這個'image1'元素來調用ajax到你的服務器端方法,並向其發佈適當的數據。 –

+0

不是直接的。 JS運行在客戶端上,PHP運行在服務器上。大多數JS可以對服務器執行ajax調用,並以這種方式執行php。 –

回答

0
$("#image1").click(function(){ 
    $.ajax({url: "update.php", 
     data: {img1link : 'image link', ratingnew1: 'rating'}); 
}); 

,然後update.php文件

<?php 
mysqli_query($conn,"UPDATE photos SET rating='$ratingnew1' WHERE link='$img1link'") 
?> 
+1

爲什麼OP應該這樣做?請添加一個解釋,你做了什麼,爲什麼你這樣做,不僅是爲了OP,而是爲了將來的訪問者SO。 你錯過了PHP方面的關鍵部分。 –

0

由於事實上你的代碼必須包含2個部分:客戶端(JQuery的)和服務器端(PHP)。 jQuery代碼可以是可以是

$(document).ready({ 
    $("#image1").click(function(){ 
     $.ajax({ 
      url: "update.php", 
      type: "POST", 
      data: { 
       img1link : 'image link', 
       ratingnew1: 'new rating' 
      }, 
      succsess: function(data){ 
       //some action 
      } 
     }); 
    }); 
}); 

在這裏data塊必須聲明將由POST動作被髮送(作爲請求的typePOST)的變量中。有關更多可能的設置和藥水,請參閱JQuery.ajax() documentation

對於服務器端(在這個特殊的例子update.php),您可以使用下面的代碼:

<?php 
$data['img1link'] = ''; 
$data['ratingnew1'] = ''; 
foreach($data as $key=>$value){ 
    if(array_key_exists($key, $_POST)) 
     $data[$key] = $_POST[$key]; 
} 

if($data['img1link'] != '') 
    mysqli_query($conn,"UPDATE photos SET rating='".mysqli_real_escape_string($data['ratingnew1'])."' WHERE link='".mysqli_real_escape_string($data['ratingnew1'])."'"); 
+0

OP爲什麼要「嘗試這個」?請添加一個解釋,你做了什麼,爲什麼你這樣做,不僅是爲了OP,而是爲了將來的訪問者SO。 你錯過了PHP方面的關鍵部分。 –

0
$("#image1").click(function(){ 
    $.post("update.php",{img1link : this.src});//here You send POST request to the server with post data img1link = src tag value of image 
}); 

update.php

//and here You receive data $_POST['img1link'] 
    if(!empty($_POST)) { 
     mysqli_query($conn,"UPDATE photos SET rating=rating+1 WHERE link='".$_POST['img1link']."'") 
    } 
相關問題