Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX и вывод данных, из не скольких переменных, нужно вывести две переменные, в response 
:(
    Опции темы
DRUG_ADDICT
  Дата 21.11.2010, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



Привет народ! помогите пожалуйста вывести переменную $title, выводиться только $conten... как выводить два значения сразу в разных переменных smile не знаю, вернее как это сделать можно проще всего. а то я новичек и тут, сижу голову ломаю, в принцепе варианты есть, но там как то получиться не хорошо, половину скрипта чутли не скопировать надо будет... smile

нужно вывести раздельно значения переменных $content и $title

вот такой скрипт нашел в интернете:
Код

<?php
$go=$_GET['go']; //формируем имя короткой переменной из глобального массива
if ($go == "") { //если выбрана главная страница
   $content="Информация о нас"; //содержимое страницы
   $title="О нас"; //заголовок страницы
   $end = 1;
}
if ($go == "contacts") {  //если выбрана страница контактов
   $content="Связь с нами"; //содержимое страницы
   $title="Контакты";  //заголовок страницы
   $end = 1;
}
if ($go == "works") {  //если выбрана страница портфолио
   $content="Наши работы"; //содержимое страницы
   $title="Портфолио";  //заголовок страницы
   $end = 1;
}
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){ 
die($content);
} //если запрос сделал по ajax
echo <<<HTML
<html>
<head>
<script language="javascript" src="jQuery.js"></script> <!--подключаем библиотеку-->
<script language="javascript">
$(document).ready(function(){ //если DOM готов к манипуляции
   $("a").click(function(){ // если ссылка нажата
      var id=$(this).attr('id'); //получаем id нажатой ссылки
      $.ajax({
         type: "GET", //метод отправки: GET или POST
         data: "go="+id, //данные, которые отправляем серверу
         cache: false, //функция кеширования
         url: "index.php", //скрипт, которому отправляется запрос.
         beforeSend: function(){
            //перед отправкой запроса что-то делаем, например:
            alert ("Отправляем запрос");
         },
         success: function(response){
           //при успешном ответе сервера что-то делаем, например:
           alert (response);
           $("#content").html (response);
         }
      });
      return false;
   });
});
</script>
<title>$title</title>
</head>
<body>
<a href="index.php" id="about">О нас</a>  <a href="index.php?go=contacts" id="contacts">Контакты</a>  <a href="index.php?go=works" id="works">Наши работы</a><br />
1<div id="content">
$content
</div>
</body>
</html>
HTML;
?>

http://codeserfer.com/357-primer-malenkogo-sajta-na-ajax.html

если написать:
Код

....
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){ 
echo $content;
echo $title;
die();
....

то в response будут два значения этих переменных слиты в едино =( плохо, оч плохо =( эти значения надо выводить в разных местах. конечно можно ещё рас этот вывод обработать через пхп, и получить то что надо, но наверно тут как то проще можно сделать...

конечно ещё можно продублировать .ajax({ .... и далее отправить снвоа запрос в пхп, за след переменной, но помоему ет бред какой-то тоже smile 

я чувствую что всё тут оч просто, но не могу понять, помогите пожалуйста! ибо сегодня ток первый день начал юзать AJAX, не когда с этим раньше не связывался... 


ps. ненавижу javascript

Это сообщение отредактировал(а) DRUG_ADDICT - 21.11.2010, 21:40
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
GZep
Дата 21.11.2010, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 1
Всего: 32



ммм... сейчас попробую:
Код

if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){ 

echo json_encode(array($content, $title));

die();
} //если запрос сделал по ajax

Код

//...
         success: function(response){
           //при успешном ответе сервера что-то делаем, например:
           alert (response);
           $("#content").html (response[0]);
           $("title").html (response[1]);
         }
//...

попробуйте. В любом случае надо использовать json: в php это связка функций json_encode и  json_decode, в javascript - ... мм вот лучше сылку дам: http://www.prodevtips.com/2008/08/15/jquer...nd-json_decode/ про JQuery сразу.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
DRUG_ADDICT
Дата 22.11.2010, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



чето не помогло короч =( ч тока не попробовал я с этой json`ом делать, и так и сяк =((( блин. короч все было в одной строчке всегда, разделенные запитой - это не массив, кажется. хотя пхп отдает javascript`у массив. но на деле... 

Код

["\u041d\u0430\u0448\u0438 \u0440\u0430\u0431\u043e\u0442\u044b","\u041f\u043e\u0440\u0442\u0444\u043e\u043b\u0438\u043e"]


или русски вариант этого выводил только в alert() помогал $.evalJSON(response), а на страничку выводится русскими символами не хочет, просто пусто, либо одна запятая нарисована, ###... кодировка utf-8. 

работаю стандартно с массивами типа... 
response[0] - получаю какой-то один символ... [ 
response[2] - получаю /
и т.д.

ps. почему мне в javascript не когда не фига не понятно, вроде легко, вот она строка, всё просто а тут такое smile 
ps2. я ненавижу javascript.


помогите пожалуйста smile 
ну вроде идея просто как........, просто надо получать второе отдельное значение от пхп и садить её в отдельную переменную javascript`a и использовать на странице где угодно. или получать как вот эту строку, но разбивать её на массивы... и т.д. и т.п. smile не знаю, блин...

Добавлено через 2 минуты и 30 секунд
четыре с половиной часов уже маюсь с этой фигней одной.
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
DRUG_ADDICT
Дата 22.11.2010, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



корочь получилось!

в PHP:
Код

...
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){ 
echo json_encode(array($content, $title));
die();
}
...


в JS добавил:
Код

...
           dataType: "json", 
...

и вывод
Код

...
         success: function(response){
           alert ("Ответ успешно получен");
             $("#content").html (response[0]);
           $("#name").html (response[1]);
...


в HTML:
Код

<title id="name"></title>
....
<div id="content"></div>


ну и конечно <script language="javascript" src="jQuery.json.js"></script> вставляем после jQuery.js =)
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
GZep
Дата 22.11.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 1
Всего: 32



DRUG_ADDICT, 
Цитата(DRUG_ADDICT @  22.11.2010,  22:02 Найти цитируемый пост)
ну и конечно <script language="javascript" src="jQuery.json.js"></script> вставляем после jQuery.js =) 

попробуйте без этого, jquery вроде как нативно поддерживает конструкции ajax-json.

Про Json вам еще неплохо бы убить 10-15 минут в соответствующей статье википедии, благо есть на русском.
вместо alert() используйте для отладки firebug - он сильно упростит жизнь.

Рад, что получилось. smile 


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
DRUG_ADDICT
Дата 22.11.2010, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



ага, СПАСИБО огромное за подсказку! но вот возникла ещё одна проблемка, не знаю писать ли её сюда... хотя в принцепе она может возникнуть у некоторых кто будет разбираться с этим...

в 
Код

<title id="name"></title>

у меня содержится статически текст, который естественно после обновления от AJAX исчезает, а появляться только новый текст.

размышлял тут над способами решения:
>отправлять содержимое id="name" через AJAX в PHP а далее выводить не получиться ну т.к. допустим открыл страницу с именем 
<title id="name">динамический текст: СТАТИЧЕСКИЙ ТЕКСТ</title>,
отправляю это содержимое id="name" в PHP... получаю:
<title id="name">динамический текст: динамический текст: СТАТИЧИСКИЙ ТЕКСТ</title>
далее снова
<title id="name">динамический текст:динамический текст:динамический текст: СТАТИЧИСКИЙ ТЕКСТ</title>
копирую то что было  и добавляю к новому, бред...

>добавлять к самой переменной PHP динамического текста этот СТАТИЧЕСКИЙ ТЕКСТ, чтоб он постоянно присутствовал у динамического текста - не есть хорошо, ибо мне тоже самое надо будет проделывать с <head id="head"></head>...
хотя с <title это ещё можно, но с <head smile нет там слишком много что есть, и всё это копировать и добавлять к новой переменой, кх-кх =( как это банально.

>document.write('response'); тоже не поможет, в случае с другими ява скриптами в том же <head id="head"></head>, гыы получиться бардак. а про <title id="name"> я вообще в принципе молчу там внутри тега  этот document.write вообще не дееспособен =)

=( как быть хз. 

............................
вообщем, как то надо не так 
Код

<title id="name"></title>

обновлять содержимое... а чтоб обновлялось какой то определенное место в <title>СТАТИЧЕСКИЙ ТЕКСТ ...место обновления...</title>
указать такое место вообще возможно средствами JS? =)))

зы. нать прыдумать какой-то более простой способ решения, отчитывать символы в строке, парсить smile спасибо не нать бррррр.... наверно как то можно проще!

Добавлено через 11 минут и 25 секунд
Цитата

>добавлять к самой переменной PHP динамического текста этот СТАТИЧЕСКИЙ ТЕКСТ, чтоб он постоянно присутствовал у динамического текста - не есть хорошо, ибо мне тоже самое надо будет проделывать с <head id="head"></head>...
хотя с <title это ещё можно, но с <head  нет там слишком много что есть, и всё это копировать и добавлять к новой переменой, кх-кх =( как это банально.

ладно остановлюсь на этом... хоть и банально но будет работать... эххх...

Это сообщение отредактировал(а) DRUG_ADDICT - 22.11.2010, 23:33
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
GZep
Дата 23.11.2010, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 1
Всего: 32



если правильно понял:
Код

<?php
$title = "статический тайтл";
?>

.....

<title><?php echo $title; ?></title>

<script type="text/javascript">

staticTitle = "<?php echo $title; ?>";//копия статического татйтла, чтобы javascript знал его без всекого парсинга при инициализации
titleSep = " :: ";//сепаратор (разделитель)

$(document).ready(function() {

    $(this).attr("title", staticTitle  + titleSep + "динамический тайтл, в виде переменной, конечно");

});

</script>

....



Добавлено @ 17:50
после выполнения ajax запроса, видимо, надо так:
Код

document.title = staticTitle  + titleSep + "динамический тайтл, в виде переменной, конечно";


Это сообщение отредактировал(а) GZep - 23.11.2010, 23:01


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
DRUG_ADDICT
Дата 24.11.2010, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 10.8.2007

Репутация: нет
Всего: нет



всё получилось спасибо огромное ещё рас! smile 

зы. перебираюсь в раздел пхп... там щас с этим траблы возникли, сам тож пади решить не смагу =( 
--------------------
ICQ# 23-23-30 What can i do for you ? Paid..."Свобода лечит лучше всего" А.С. Неил. Самерхилт.
PM ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.