Помогите передать переменную в файл?

P
На сайте с 06.01.2009
Offline
601
544

Здравствуйте. Справиться не могу.

Подгружаем в каждый документ файл js

<script src="/js/1.js" type="text/javascript" charset="utf-8"></script>

в котором такого плана код


var PageName=window.location.pathname;
$(document).ready(function(){

function loadData2(page){
$.ajax
({
type: "POST",
url: "/incf/load2.php",
data: {page : page},
success: function(msg)
{
$("#infoblok2").ajaxComplete(function(event, request, settings)
{
$("#infoblok2").html(msg);

});
}
});
}
// для первой загрузки
loadData2(PageName); // For first time page load default results

В нужных страницах такой код


<?
//(подключаемся к базе и оттуда берем данные)
$spisokurl = ...; // здесь мы составляем двумерный массив
<div id="infoblok2"></div>
?>

Подскажите, пожалуйста, как $spisokurl передать в файл /incf/load2.php ?

Что нужно дописать в 1.js ?

Совсем как то у меня не получается.

Спасибо заранее.

М
На сайте с 05.02.2014
Offline
30
#1

Во-первых, в PHP-файле вам нужно распечатать значение вашей переменной. Например, в JSON-формат. А в JS-файле ожидать, что ответ вам вернётся в формате JSON.

Распечатать переменную в PHP в формат JSON можно функцией json_encode(), т.е. так:

echo json_encode( $spisokurl )

D
На сайте с 14.01.2007
Offline
153
#2

если я хоть что-то понял, то:

postavkin:
<?
//(подключаемся к базе и оттуда берем данные)
$spisokurl = ...; // здесь мы составляем двумерный массив
<script>var spisokurl=<?php echo json_encode($spisokurl);?>;</script>
<div id="infoblok2"></div>
?>
postavkin:
type: "POST",
url: "/incf/load2.php",
data: {page : page, spisokurl:spisokurl},
success: function(msg)
М
На сайте с 05.02.2014
Offline
30
#3

postavkin, в вашем описании PHP-код это часть load2.php (я именно так понял) или это код, который выполняется до формирования страницы, подгружающей 1.js?

P
На сайте с 06.01.2009
Offline
601
#4
Маркус:
postavkin, в вашем описании PHP-код это часть load2.php (я именно так понял) или это код, который выполняется до формирования страницы, подгружающей 1.js?

Нет. В моем описании - php код который показан, это код в левом сайдбаре, куда как раз подгружается load2.php

Я короче решил ничего никуда не передавать, я ламер, признаюсь честно, поэтому сделал просто выборку из БД ещё и в файле load2.php

Просто не хотел лишний разу базу дергать.

ps вообщем суть такая. Блок левого меню содержит ссылки.

В некоторых страницах ссылки есть в коде, а в некоторых страницах подгружаются через js (как раз файл load2.php это ссылки левого меню).

Хотел сделать так, чтобы в файле левого сайтбара формировался массив, выводились ссылки если не подгружается load2.php, а если подгружается load2.php то в него их передать...

ps сделал как работает, но не очень нравится.

в левом сайтбаре определяем, если будем подгражать load2 то ничего не делаем (в самом load2 идет подкл к базе и формирование ссылок внутреннего меню). Если load2 не будем подгружать то подкл к базе и формируем ссылки левого меню. Не нравится то, что если надо будет поправить порядок вывода ссылок в меню или ещё что, то нужно и там и там код править...

М
На сайте с 05.02.2014
Offline
30
#5

postavkin, если вам так будет понятнее, то советую оформить код выборки из БД в отдельную функцию (или метод класса, если используется ООП). А потом вызывать эту функцию в обоих файлах. Так вы избежите дублирования кода.

P
На сайте с 06.01.2009
Offline
601
#6

можно закрыть. спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий