2011-09-08 60 views
0

我有這樣的代碼,以呈現圖像:Jquery的,AJAX和PHP

<?php foreach ($images as $row) : ?>  
        <div class="box col_3"> 
         <p><a href="<?php echo base_url() ?>public/images/fullscreen/<?php echo $row['image'] ?>" rel="prettyPhoto[gallery1]" title="<?php echo $row['title'] ?>"> 
           <img src="<?php echo base_url() ?>public/images/thumbnails/<?php echo $row['image_thumb'] ?>" title="<?php echo $row['title'] ?>" ></a></p>        

           <textarea name="title_image" rows="3" class="title_image"><?php echo $row['title'] ?></textarea> 
             <input type="hidden" class="id_image" class="id_image" value="<?php echo $row['id_image'] ?>" > 
             <input type="submit" name="update_image" id="update_image" value="Update" class="submit" /><br> 
         <a href="#" class="delete" id="<?php echo $row['id_image'] ?>">Delete image</a> 
        </div> 
       <?php endforeach; ?> 

用戶可以上傳的圖像,並且用於與被創建的類框的每一個圖像的div。 這是發送數據進行更新的代碼。

$(function(){   
    $('.submit').click(function(){ 
     ('.box').append('<img src="<?php echo IMG ?>loadinfo.net.gif" id="loading" />'); 
     var id = $('.id_image').val();    
     var title = $('.title_image').val();   

     $.ajax({ 
      url: "<?php echo site_url('gallery/update_image') ?>", 
      type: 'POST', 
      data: 'id=' + id + '&title=' + title, 
      success: function(){ 
       $('#loading').fadeOut(500, function(){ 
        $(this).remove(); 
       }); 
      } 
     });   
     return false; 
    });     
}); 

這隻適用於第一個盒子,其餘不適用。我需要做些什麼才能使它工作?

+0

爲什麼不能正常工作?你看到什麼錯誤信息,應該發生什麼以及發生什麼? – TJHeuvel

+0

@TJHeuvel:他在他的問題的最後一行中說了這一點.... –

+0

函數更新圖像的描述。當我嘗試更新第一個框中的圖像時,我得到: 消息:未定義索引:標題,未定義索引:id – Sasha

回答

0

你是你的JavaScript中引用CSS類

$('.id_image').val() 

這將總是返回這個類的如第一次出現的值第一張圖片。 嘗試使用您的提交按鈕作爲開始 例如遍歷DOM。

$('.submit').click(function(){ 
var id = $(this).prevAll('.id_image').val(); 

這應該返回正確的id值。 那麼你可以用同樣的方法來拿到冠軍

更新加載圖像用同樣的方法,但這個時候你將不得不使用父母()選擇

$(this).parents('.box').append('<img src="<?php echo IMG ?>loadinfo.net.gif" id="loading" />'); 

,你是現在只分配一個加載映像,刪除功能應該按預期工作

+0

它正在工作:D。還有一個問題。當點擊更新時,它會加載加載gif,但會加載所有框,並且在成功之後,它僅在第一次被刪除。如何限制加載只是點擊更新的框? – Sasha

+0

更新了上面的答案 – clem