2012-06-28 2 views
0

У меня есть страница index.php, которая использует модальный для загрузки файлов. После загрузки я использую следующее, чтобы обновить мою базу данных и загрузить новые изображения в список.jQuery Ajax Request - Lose Method

$('#sortableImages').load('../includes/sortImages.php?edit=' + edit); 

Исполняет:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $(function() { 
     $("#sortableImages ul").sortable({ 
      opacity: 0.6, cursor: 'move', update: function() { 
       var order = $(this).sortable("serialize") + '&action=updateRecordsListings'; 
       $.post("../albumUploader/queries/sort.php", order); 
      } 
     }); 
    }); 

}); 
</script> 
echo "<ul class='revisionList'>"; 

       while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
        $sortImageName = $row['OrgImageName']; 
        $sortPath = "../data/gallery/" . $getGalleryID . "/images/album/" . $sortImageName; 
        echo "<li class='sortPhotos' id='recordsArray_{$row['id']}' >"; 
        echo '<img src="'. $sortPath .'"/>'; 
        echo "</li>"; 
       } 

       echo "</ul>"; 

Изображения заселить через Диво #sortableImages на странице индекса. Однако кажется, что я потерял свой метод sortable() из js-файла, который был первоначально загружен в index.php или после запроса ajax он не читает js. Что мне здесь не хватает?

Спасибо, миллион.

+0

что вы имеете в виду потерять? «это не чтение js», просим пояснить. – FlavorScape

+0

правильный, извините, немного «свободно» с моей терминологией. Он появляется после запроса, недавно заполненный список не относится к ui.sortable.js - thanks – Bungdaddy

+0

Является ли фрагмент с сортировкой в ​​index.php или на странице ajax? – Cranio

ответ

0

Когда вы загружаете скрипт с удаленной страницы с помощью ajax, важно понимать, что готовое событие уже произошло на странице, в которую вы загружаете.

Это означает, что код, завернутый в $(function(){}), будет срабатывать, как только он будет получен. Если этот код предшествует html, на который он ссылается, он не найдет этот html, поскольку он еще не существует.

Если вы переместите тот же код под html, на который он ссылается, он загорится после того, как будет существовать html и, следовательно, его найдет.

EDIT: Мой ответ предполагает, что весь код отображается после «Исполняет:» в OP содержится в удаленных страницах

+0

Хорошее начало, я думаю, что вывод неправильный. – Cranio

+1

Нет. Готов не запускается, пока DOM НЕ ГОТОВ. – FlavorScape

+0

Именно это я и имел в виду. – Cranio

0

У вас нет обработчика для результата sort.php. Вызов этого будет загружать данные только в кеш.

Для обновления данных требуется полная функция обработчика, не говоря уже о добавлении ее в dom. Вы должны уточнить свой вопрос и сделать очевидным, что это две разные страницы.

$ .post ("../ albumUploader/запросов/sort.php", порядок) .complete = функ ...

+0

мой плохой, думал, что .load (../ includes/sortImages.php? Edit = '+ edit) было ясно, что это была другая страница, определенно будет более ясной в будущем. Спасибо за Ваш ответ. Мне нужно будет изучить полный обработчик. – Bungdaddy

+1

@ FlavorScape теперь, когда местоположение кода было очищено, вы можете удалить свой downvote, основанный на ложных предположениях с вашей стороны – charlietfl