2013-04-25 75 views
0
<div class="main_content grid_9 clearfix omega"> 
    <div class="basic_info"> 
     <p>You have 
     <?php 
      $msg = count($messages); 
      $msg_tekst = ($msg == 1) ? 'message.' : 'messages.'; 
     echo $msg . ' ' . $msg_tekst; 
     ?> 
     </p> 
     <p>Show all 
      <a role=show_msg href="<?php echo base_url('admin/contact_messages/unread') ?>">unread </a> 
      | 
      <a role=show_msg href="<?php echo base_url('admin/contact_messages/read') ?>">read </a> 
      messages. 
     </p> 
    </div> 

    <!-- START CONTACT MESSAGES --> 
    <div class="contact_messages"> 
     <?php foreach ($messages as $msg) : ?> 
      <article class="box contact_message clearfix"> 
       <h2><?php echo $msg['name'] ?></h2> 
       <p><?php echo $msg['comment'] ?></p> 
       <a role=delete href="<?php echo base_url('admin/contact_messages_delete/' . $msg['id_contact']) ?>">Delete Message</a> 

       <?php if($msg['read'] == 0) : ?> 
        <a role=read href="<?php echo base_url('admin/contact_messages_read/' . $msg['id_contact'] . '/read') ?>">Mark as read</a> 
       <?php else: ?> 
        <a role=unread href="<?php echo base_url('admin/contact_messages_read/' . $msg['id_contact']) ?>">Mark as unread</a> 
       <?php endif ?> 
      </article> 
     <?php endforeach; ?> 
    </div> 
    <!-- END CONTACT MESSAGES --> 

</div> 
<!-- END MAIN_CONTENT --> 

<script> 
$(document).ready(function() { 

    var basic_info = $('.basic_info'), 
    show_msg = basic_info.find('a[role=show_msg]'), 
    contact_messages = $('.contact_messages'), 
    read = contact_messages.find('a[role=read], a[role=unread]'), 
    title = 'Contact Message Delete', 
    message = 'Are you sure you want to delete this message?'; 
    delete_admin(title, message); 

    function msg_load(container, url) 
    { 
     container.slideUp('fast', function(){ 
       container.empty().load(url, function(){ 
        container.slideDown('fast'); 
      }); 
     }); 
    }; 

    // AJAX MESSAGES SHOWING 
    show_msg.on('click', function(e){ 
     var $this = $(this), 
     url = $this.attr('href'), 
     url_info = url + ' .basic_info > *', 
     url_msg = url + ' .contact_messages > *'; 

     msg_load(basic_info, url_info); 
     msg_load(contact_messages, url_msg); 

     return false; 
    }); 

}); 
</script> 

加載後,所設置的變量不可用(或者它們不存在)。如何重新聲明這個變量(變量的HTML部分是在容器內部)?Jquery 1.9 - 加載後聲明變量

Page Render

+0

發佈整個示例不是peicemeal。編輯 - 我的意思是整個腳本。 – asawyer 2013-04-25 12:46:16

+0

@asawyer我編輯了問題。 – Sasha 2013-04-25 12:48:56

+0

PHP不是問題,請發佈您的整個腳本。或者至少是其最小的可重複版本。 – asawyer 2013-04-25 12:53:16

回答

0

basic_info是到basic_info類的所有元素的引用,分配有domready中之後進行。如果basic_info元素的數量可能發生變化,則必須在您希望信息有效的時間點進行分配。

+0

** basic_info **元素根據在加載函數中調用的查詢而變化。在加載函數中,我需要再次創建變量。 – Sasha 2013-04-25 15:59:35