Создание HTML файла создаваемого при помощи PHP+JQUERY. Область видимости загаловочных файлов.

beerdy

Новичок
Есть INDEX.PHP

Код:
...
<script language="JavaScript" src="http://test1.ru/js/ajaxload.js"></script>
<link rel="stylesheet" href="http://test1.ru/css/modul.css" type="text/css"/>
<script language="JavaScript" src="http://test1.ru/js/modul.js"></script> //скрипт который выводит всплывающие окно
...
<td>
<div id="dictionary">
</div>
<div id="boxes"><div id="dialog" class="window">Простое модальное окно<a href="#"class="close"/>Закрыть его</a></div><div id="mask"></div></div> //Само модальное окно которое всплывает
</td>
...
Есть
С помощью http://test1.ru/js/ajaxload.js методом AJAX по клику на кнопке меню, запускается скрипт INITDB.PHP - который генирирует файл PRODUCTION.PHP и вставляется в страницу динамически следующим образом (код ajaxload.js):
Код:
...
$(document).ready(function() {
  $('#womanwinter a').click(function() {
    $('.viewsqr').load('http://test1.ru/content/INITDB.PHP', function(){
        $('.viewsqr').load('http://test1.ru/content/platform/PRODUCTION.PHP');
	});
    return false;
  });
});
...
Содержимое PRODUCTION.PHP получается вот такое:
Код:
<div class=block>
<div class=n><p>АРТИКУЛ:<p id=artl class=addpos1d><a href="#dialog" name="modal1">0000003</a></p></p></div>
<div class=n><p>АРТИКУЛ:<p id=artl class=addpos1d><a href="#dialog" name="modal2">0000004</a></p></p></div>
...
</div>
ПРОБЛЕМА в следующем:
Если я указываю в загаловке подключаемые файлы MODUL.CSS и MODUL.JS - то при клике на ссылку 0000003 или ссылку 0000004 (см. сгенерированный файл PRODUCTION.PHP) не фига не происходит, модульное окно не всплывает т.е. JAVASCRIPT такое ощущение не работает.
Если же я добавляю в файл генератор "INITDB.PHP", а не в INDEX.PHP, эти две строчки подключения файлов MODUL.CSS и MODUL.JS, т.е. получается на выходе PRODUCTION.PHP:

Код:
<div class=block>
<link rel="stylesheet" href="http://test1.ru/css/modul.css" type="text/css"/>
<script language="JavaScript" src="http://test1.ru/js/modul.js"></script>
<div class=n><p>АРТИКУЛ:<p id=artl class=addpos1d><a href="#dialog" name="modal">0000003</a></p></p></div>
<link rel="stylesheet" href="http://test1.ru/css/modul.css" type="text/css"/>
<script language="JavaScript" src="http://test1.ru/js/modul.js"></script>
<div class=n><p>АРТИКУЛ:<p id=artl class=addpos1d><a href="#dialog" name="modal2">0000004</a></p></p></div>
...
</div>
ТО все работает. НО! Это есть не хорошо и както криво и избыточно, и скорее всего влияет на производительность.
Как побороть эту проблему. Т.к. я начинающий мне ничего в голову не лезет пробовал уже все что можно. Если есть другой выход из данной ситуации то пожалуйста подскажите.

ЗЫ: Мои догадки что здесь чтото с областью видимости, но к сожелению на этом они заканчиваются)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
т.е. JAVASCRIPT такое ощущение не работает.
А давай без этой ереси.
Раставь алерты убедись.
Займись отладкой в конце концов.
При помощи this parent и возможно еще некоторых магических заклинаний ты сможешь достичь полного феншуя

Жесть. Это о чем?
 

beerdy

Новичок
тут надо использовать это - http://api.jquery.com/live/
и да, зачем делать два AJAX запроса?
Спасибо за ссылочку.

А два запроса вот зачем:
INITDB.PHP
Код:
...
	$link = mysql_connect($hostname, $username, $password)
		or die("Не возможно соединиться с базой: ".mysql_error());
	mysql_select_db($databasename)
		or die("Невозможно выбрать БД".mysql_error());
	$query = "SELECT article FROM shopfabian";
	$result = mysql_query($query)
		or die("Невозможно выполнить заброс к БД".mysql_error());
	for($data = array(); $row=mysql_fetch_assoc($result); $data[]=$row);
	$fl_lenght = mysql_num_rows($result);


	$html = '<script language="JavaScript" src="http://test1.ru/js/modul.js"></script>';
	for($count = 0; $count < $fl_lenght; $count++){
		$html .= "<div class=n>";
		$html .= '<p>АРТИКУЛ:<p id=artl class=addpos1d><a href="#dialog" name="modal">'.$data[$count]['article'].'</a></p></p>';
		$html .= '</div>';}
	$html .= "";
	
	
	$fh = fopen($file, "w");
	$status = fwrite($fh, $html);
	fclose($fh);
...
т.е. мне нужен динамически генирируемы файл и в последствии AJAX-ом подгружаемый.
Если есть другие варианты как это сделать, выслушаю с удовольствием.
 

A1x

Новичок
что мешает вместо
PHP:
$fh = fopen($file, "w");
	$status = fwrite($fh, $html);
	fclose($fh);
сделать просто echo $html; ?
 

beerdy

Новичок
Так мне нужно прикрепить AJAX-om без обновления страници приготовленный файл. как раз вот это и делается с помощью конструкции:
Код:
$('.viewsqr').load('http://test1.ru/content/INITDB.PHP', function(){
$('.viewsqr').load('http://test1.ru/content/platform/PRODUCTION.PHP');
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
beerdy
Это делается как-то по другому.
Но ни в коем случае не при помощи 2-х запросов.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Давай зайдем с другой стороны.
Объясни словами зачем тебе 2 последовательных запроса?
 

A1x

Новичок
beerdy
у тебя файл PRODUCTION.PHP содержит статический контент
обычно статический контент ставят вместо скрипта чтобы уменьшить нагрузку на сервер и увеличить скорость выполнения запроса
у тебя же получается что нагрузка на сервер наоборот увеличивается за счет операции записи файла при каждом запросе
плюс к тому же увеличивается нагрузка на клиент, которому приходится выполнять два запроса там где нужен один
это выглядит абсолютно бессмысленно

обязательно ли тебе нужен "приготовленный файл" с контентом, или может можно отдавать этот контент просто скриптом?
если обязательно нужен файл - создавай его один раз например при изменении содержимого твоей таблицы
а не при каждом аякс-запросе
 

beerdy

Новичок
Есть большая БД. При аякс запросе из нее нужно выдернуть определенную инфу о партии определенного товара (цена, количество скидки и т. д.). Партий очень много (каждая кнопка аякс запроса есть определенная партия) так что выдернуть в файлы всю базу бредово иначе отпадает смысл вообще в необходимости вести БД.
Я решил что буду сначало вот этим:
Код:
$('.viewsqr').load('http://test1.ru/content/INITDB.PHP',  function(){
создавать файл с партией товаров. А вот этим:
Код:
$('.viewsqr').load('http://test1.ru/content/platform/PRODUCTION.PHP');
будет отображаться сама партия.
Теперь можно выбрать определенный товар (кликом на артикул) и будет всплывать модальное окно. С информацией по единице товара.

Как сделать по другому я не знаю т.к. вообще пока 'TEFAL' )))
 

tz-lom

Продвинутый новичок
beerdy
а почему бы сразу не возвращать данные через INITDB.PHP ? если надо можно сохранение в кеш сделать внутри INITDB.PHP
 

beerdy

Новичок
А если возвращать данные через INITDB.PHP то страница обновится. Сайт должен полностью быть на АЯКСе.
И если всеже возможна подгрузака как то подругому, без обновления страницы, то подскажите плиз...
 

beerdy

Новичок
почему с .load('http://test1.ru/content/INITDB.PHP' страница будет обновляться а с .load('http://test1.ru/content/platform/PRODUCTION.PHP' не будет?
если шо один шо другой возвращает хтмл?
Хех чето я запарился. Ща попробую...
Это получается если я echo сделаю он мне код HTML прикрепит к якорю?

ЗЫ: У меня бывает, когда много думаю - начинаю сложно думать о простых вещах)
 

A1x

Новичок
просто запусти в адресной строке браузера http://test1.ru/content/INITDB.PHP (с echo) и http://test1.ru/content/platform/PRODUCTION.PHP
получишь один и тот же результат. Значит ли это что "он код HTML прикрепит к якорю" - не знаю потому что не встречал нигде такую формулировку
обычно говорят как то например так "по ссылке http://test1.ru/content/INITDB.PHP находится HTML или "скрипт который возвращает HTML"
 

beerdy

Новичок
Отпишу о своих опытах, как домой доберусь.
Большой спасибо A1x
 

beerdy

Новичок
Давай зайдем с другой стороны.
Объясни словами зачем тебе 2 последовательных запроса?
Много людей которые якобы все знают, начинают не помогать а вопросами нагружать - а типо я все знаю а вот ты незнаешь: как тааак?)
Это неправильно - на вопрос вопросом отвечать. Тем более я полный ноль в этих вопросах....
 
Сверху