Java-Script в загруженном через ajax div`е

Статус
В этой теме нельзя размещать новые ответы.

ivashka

Полезный
Регистрация
16 Май 2007
Сообщения
151
Реакции
15
Здравствуйте. Возникла проблема.
На странице контент загружается через аякс, вот функция:
PHP:
function showContent(link) { 

var cont = document.getElementById('contentBody'); 
var loading = document.getElementById('loading'); 

cont.innerHTML = loading.innerHTML; 

var http = createRequestObject(); 
if( http ) 
{ 
http.open('get', link); 
http.onreadystatechange = function () 
{ 
if(http.readyState == 4) 
{ 
cont.innerHTML = http.responseText; 
} 
} 
http.send(null); 
} 
else 
{ 
document.location = link; 
} 
} 

// создание ajax объекта 
function createRequestObject() 
{ 
try { return new XMLHttpRequest() } 
catch(e) 
{ 
try { return new ActiveXObject('Msxml2.XMLHTTP') } 
catch(e) 
{ 
try { return new ActiveXObject('Microsoft.XMLHTTP') } 
catch(e) { return null; } 
} 
} 
}

На странице выводиться через <div id="contentBody"></div>
Подгружается форма, и мне нужно в другой скрипт отослать данные аякс запросом с этой формы, и вернуть результат, тоесть заменить <div id="contentBody"></div> следующим ответом.

Но никак не получается что бы в середине этого дива (контент который подгрузился) заработ ява скрипт, или решение для отправки постом данных.
Использую вот такой вариант:

PHP:
$ajax .= '
<script type="text/javascript" src="moduls/ajax/form.js"></script> 
<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>
';
ob_start();
require ('moduls/ajax/type/trucks.php');
$ajax .= ob_get_contents(); 
ob_end_clean(); 
$ajax .= '
<script type="text/javascript">
$(document).ready(function(){
$("#searchCar").ajaxForm(function() {
alert("Спасибо за комментарий!");
});
});
</script>
';

- это страница которая подгружается.
$ajax - тут форма с ид searchCar
Также пробовал выносить ява скрипты в главный файл, который открывается без аякса. Но ничего не вышло.

Пробовал
PHP:
<script type="text/javascript" src="moduls/ajax/form.js"></script> 
<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>
Ставить и в главный файл, и в файл который подгружается через аякс, результата нет.
 
1 что бы не писать XMLHttpRequest
в формах НЕЛЬЗЯ использовать не enctype='application/x-www-form-urlencoded'
не enctype='multipart/form-data' и лшуче вообще не использовать enctype

2 как то странно загрушаешь данные в див) пробе либа подключена)
если устраивает то ладно =)

3 невижу обработки формы с помощью плагина

/**
* Обработка форм с id x-form
* отправка данных
*/
function xform() {
$(document).ready(function(){
var options = {
//target: "#modalbox", // ИД КУДА ГРУЗИТЬ ПОТОМ ОТВЕТ, В МЕСТО ЭТОГО Я ЮЗАЮ Response
//url: "{action}", // куда слать... у меня автоматоп проставляется)
//beforeSubmit: Request, // функция, вызываемая перед передачей
success: Response, // функция, вызываемая при получении ответа
type: "post", // get или post
dataType: "html", // тип данных text, hmtl, xml, script или json
//clearForm: true,
//resetForm: true,
timeout: 10000 // ожидание ответа в милисекундах
};
//$("#x-form").submit(function() {
// ид формы х-форм
$("form[id^='x-form']").submit(function () {
$(this).ajaxSubmit(options);
return false;
});
});
}
/**
* Обработка получаемого ответа
* переменная должна соотвествовать возвращаемому типу, данных (html, xml, json)
* @param response
*/
function Response(responseText) {
$("#content").html(responseText);
// замена контента в диве с ид контент
}
 
Чтобы все заработало вместо
cont.innerHTML = http.responseText;
посмотри в сторону DOM метод append().
При innerHTML не найдутся вновь созданные элементы функцией document.getElementById('???'); хотя и будут отображаться.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху