DriverCat

DriverCat
Рейтинг
116
Регистрация
10.04.2008
ivashka:
Здравствуйте. Возникла проблема.
На странице контент загружается через аякс, вот функция:
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> следующим ответом.

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

$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
Также пробовал выносить ява скрипты в главный файл, который открывается без аякса. Но ничего не вышло.

Пробовал
<script type="text/javascript" src="moduls/ajax/form.js"></script> 

<script type="text/javascript" src="2/jquery-1.3.2.min.js"></script>

Ставить и в главный файл, и в файл который подгружается через аякс, результата нет.

Чтобы заработал javascript код, подгруженный ajax, подгружать html код вместе с javascript нужно, как описывает автор здесь: http://reposlav.livejournal.com/2480.html, если конечно он подгружается не с помощью jquery (тогда смотрите недавние ветки - там было это решение тоже).

сделал по - другому: вставил в html код, который передается через ajax javascript функцию для работы с необходимыми мне в этом коде элементами dom, вот только чтобы этот javascript код сработал пришлось использовать функцию отсюда: http://reposlav.livejournal.com/2480.html

Counselor:
Как-то так. Только название файла в $.load подставить нужно вместо test.html чтобы пример работал.

<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>

<div style="display:none;">
<a id="link" href="#">test</a>
</div>

<div id="se"></div>

<script>
// загружаем содержимое аяксом
$('#se').load('test.html #link', function() {
// получаем содержимое контейнера
alert($('#se').text());
});
</script>
</body>
</html>

спасибо за пример, только я подгружаю контент не с помощью jquery , а простым скриптом :

function createHttpRequest() {

var httpRequest;
var browser = navigator.appName;

if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}
return httpRequest;
}
function getXmlHttp(){
var xmlhttp;
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
httpRequest = false;
}
}
if (!httpRequest && typeof XMLHttpRequest!='undefined') {
httpRequest = new XMLHttpRequest();
}
return xmlhttp;
}

function getRequest() {
if (httpRequest.readyState == 4) {
var html = httpRequest.responseText;
document.getElementById(resultId).innerHTML = html;
}
}

не хочется все переделывать из-за этой небольшой проблемы.

Tarry:
Каким образом пытаетесь?

пытаюсь обычным способом document.getElementById(link_id), по другому не знаю как, так как ни разу не сталкивался с такой задачей.

Ragnarok:
при выводе контента сделай разбивку на 2 таблицы.. в зависимости от ситуации смотри сам как лучше сделать

это да как вариант, просто думал есть какой-то css хак для этого...

DriverCat добавил 06.12.2010 в 22:10

'[umka:
;8131243']по-идее, в ячейке всегда может оказаться столько текста, что ячейка не влезет на страницу :)
и как тогда быть?

может, но у меня так не будет точно, все же надеюсь что решение существует...

alekssmol:
http://yandex.ru/yandsearch?clid=9582&text=%D0%BC%D0%B0%D0%B9%D0%BB&lr=1

вот чтоб меню ссылками отоброжалось у себя на сайте

это в вебмастер панели есть такая возможность, но не для всех сайтов, зайдите, почитайте, там все написано в факе.

Ragnarok:
делай версию для печати, чего тут думать)

так я и говорю про версию для печати. какая разница-то. таблица она и в версии для печати таблица.

Churkin:
Лучше таким старым сайтам пузо увеличивать а затем зарабатывать на них в сапе

у меня домену вообще 10 лет. а если сам сайт вообще ни о чем, типа личной странички. в индексе 21 страница старая инфа. будет ли толк если нарастить тиц ?

Diks-5:
не понял у меня портал WebCodePortalSystem интересно а это прописывать где именно в теме сайта или где, может в аське пообщаемся? Я если что отблагодарю!

Diks-5 добавил 27.11.2010 в 16:32
Неужели нет больше програмистов я даже готов зплатить немного, оч нужно!

Есть несколько путей. Самый простой - посмотреть в коде модуля запрос к БД, который считает юзеров и копирнуть его на главную. Но я бы пошел дальше и заносил бы раз в день по крону такую инфу в таблицу, а потом просто выводил бы результат. В итоге имеем меньшую нагрузку на сервак. Если бы видел код - написал бы конкретнее.

admak:
не пересекутся.
начальное значение автоинкремента устанавливается только ОДИН раз при создании таблицы и больше его трогать не нужно.

с выгрузкой загрузкой будет все ок, т.к. автоинкремент будет всегда больше всех значений id, которые вы выгрузили раньше.

вот смотрите, если начальное значение 90000, то все строки, не имеющие id будут 90000, 90001 и т.д. правильно? тогда при следующей загрузке эти вот значения и будут пересекаться с новыми...

Всего: 246