Вопрос
У меня есть немного простого кода, созданного с помощью XAJAX, который заменяет внутренний HTML элемента управления select некоторыми параметрами, созданными с помощью PHP-скрипта.
Это нормально и отлично в Firefox, но не работает в IE7.
Просматривая форумы XAJAX, я нашел этот который в основном говорит: «На самом деле не работает в IE, используйте div и замените его внутренний HTML на полный оператор выбора»
Сделал это, и все в порядке, за исключением того, что у меня был селектор jQuery, работающий с элементом управления select, который теперь больше не работает.
У кого-нибудь есть какие-нибудь идеи, или может ли кто-нибудь указать мне на хороший пример jQuery того, как выполнить бит ajax с помощью jQuery, чтобы я мог вообще отказаться от XAJAX?
РЕДАКТИРОВАТЬ:
<div id=imgselect>
<select id="images">
<option value="">Then select an image</option>
</select>
</div>
Picture Preview:<br><br>
<div class="img-preview" id='preview'></div>
<script type='text/javascript'>
$('#images').change(function()
{
var image = $(this).val();
var img = $('<img/>').attr('src', image);
$('#preview').html(img);
document.getElementById('picsmall').value = image;
});
</script>
Проблема возникает, когда содержимое imgselect
div
заменяется вызовом AJAX
Решение
Теперь это решается с помощью
$objResponse->script
команда
Для полноты картины и на случай, если кто-то захочет увидеть это в будущем, у меня есть исходная страница, настроенная, как указано выше:
<div id=imgselect>
<select id="images">
<option value="">Then select an image</option>
</select>
</div>
тогда в моем php-файле xajax у меня есть
function getphotos()
{
$objResponse = new xajaxResponse();
//this include assigns all the options to the select controll into the $output var
include "photos.photosselect.php";
$objResponse->assign("imgselect", "innerHTML", "$output");
$objResponse->script("$('#images').change(function() {var image = $(this).val(); var img = $('<img/>').attr('src', image); $('#preview').html(img); document.getElementById('picsmall').value = image;});");
return $objResponse;
}