2011-10-06 96 views
-2

我有一個用戶評價圖像的庫。我忙於試圖讓jquery去更新而不重新加載頁面。到目前爲止,我已經設法得到選定的單選按鈕的評級,所以我現在要做的是獲得圖像的ID,所以我可以發佈評級和圖像ID到PHP函數來處理更新數據庫中的評分。PHP和JQuery - 獲取數組值

我的問題是,我如何從PHP中的數組中獲取圖像ID到Jquery?

使用笨2.0.3

無線電形式:

echo form_open('home/rate_image/'.$image['image_id'], array('id' => 'form_rate'); 

$counter = 1; 
$form = 1; 
while($counter < 11){ 
    echo form_radio('rate', $form, FALSE).$form.' '; 
    $counter ++; 
    $form ++; 
} 

echo '<br />'; 
echo form_submit('submit', 'Vote'); 
echo form_close(); 

Jquery的(這是靠不住的大氣壓XP):

$(document).ready(function(){ 
    $('#form_rate').submit(function(e){ 
      e.preventDefault(); 

     var rating = $("input[name='rate']:checked").val(); 
     var image_id = (*where I want image ID from image array in PHP); 

     // hide form 
     $('#form_rate').hide(); 

     if(rating == null){ 
      $('#imageContainer').html('Please select a rating before voting'); 
      $('#form_rate').show(); 
     }else{ 
      $('#imageContainer').html('You have selected a rating of '+ rating + ' for the image '+ image_id); 
     } 

     // ajax code to post rating and image_id to update rating 

    }); 
}); 

圖像ID我想傳遞給jquery的:

$image['image_id'] 
+1

我應該想象一下您的HTML結構還是應該發佈它? – alex

+0

和你的問題的答案是:AJAX。 – rgin

+3

@alex:「得到什麼OP的意思」按鈕將在75k。你太親近了。 – zerkms

回答

0

使t他單選按鈕的名稱。或者將其中的一部分作爲ID,如<input type="radio" name="rating[<?=$id?>]" value="xxx>。

按原樣發送到PHP(即使用jQuery的序列化函數)。

+0

哈哈,謝謝,我不敢相信我沒有想到這一點。我只需要查看序列化函數。 – Hraffnir

0

至於我自己申請的一般規則:

  • 從JavaScript到PHP =>使用隱藏輸入字段。
  • 從PHP到Javascript =>打印任何你想轉移到JavaScript部分的JavaScript,然後用javascript讀取它。
+0

我會記住這些,謝謝。將稍微嘗試一下。 :d – Hraffnir

0

OPs問題的第一部分說「試圖讓jquery去更新而不重新加載頁面」。

AFAIK jquery中的.submit()方法將提交表單並重新加載頁面。

您應該查看以下方法來執行AJAX請求,以便您可以將評定發送到數據庫而無需重新加載頁面。

http://api.jquery.com/jQuery.ajax/