Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблемы с передачей гетов, JS

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Вчера узнал что есть JS и AJAX
managua
Отправлено: 28 Апреля, 2014 - 08:10:15
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Проблема такая, есть PHP скрипт он посылает даные через $_POST обработчику, тот заносит данные в бд и выволит соответствуюший текст (все работает нормально без JS)




В гугле искал все возможные JS обрабработчики для записи данных без обновления страницы, но ничего рабочева ненашел увыНедовольство, огорчение если вас не затруднит дайте пример вашева кода чтобы я мог понять суть P.S Я читаю документацию, ишу исходники разбираю все но JS мне недается, помогите мужики!


Также пробовал на Гетах разобраться, в html документах все удается спокойно! Но стоит всю страницу перебрать под PHP-HTML документ все перестает работать, проблему нашел (в сам JS непередаются getы.)



PHP:
скопировать код в буфер обмена
  1. <script>
  2.         function showContent(link) {
  3.  
  4.                 var cont = document.getElementById('contentBody');
  5.                 var loading = document.getElementById('loading');
  6.  
  7.                 cont.innerHTML = loading.innerHTML;
  8.  
  9.                 var http = createRequestObject();                                       // создаем ajax-объект
  10.                 if( http ) {
  11.                         http.open('get', link);                                                 // инициируем загрузку страницы
  12.                         http.onreadystatechange = function () {                 // назначаем асинхронный обработчик события
  13.                                 if(http.readyState == 4) {
  14.                                         cont.innerHTML = http.responseText;             // присваиваем содержимое
  15.                                 }
  16.                         }
  17.                         http.send(null);    
  18.                 } else {
  19.                         document.location = link;       // если ajax-объект не удается создать, просто перенаправляем на адрес
  20.                 }
  21.         }
  22.  
  23.         // создание ajax объекта
  24.         function createRequestObject() {
  25.                 try { return new XMLHttpRequest() }
  26.                 catch(e) {
  27.                         try { return new ActiveXObject('Msxml2.XMLHTTP') }
  28.                         catch(e) {
  29.                                 try { return new ActiveXObject('Microsoft.XMLHTTP') }
  30.                                 catch(e) { return null; }
  31.                         }
  32.                 }
  33.         }
  34. </script>
  35.  
  36.  
  37.  
  38.  
  39.         <p>Какую страницу желаете открыть?</p>
  40.        
  41.         <form>
  42.                 <input onclick="showContent('page1.html')" type="button" value="Страница 1"> <input onclick="showContent('page2.html')" type="button" value="Страница 2">
  43.         </form>
  44.        
  45.         <div id="contentBody">
  46.         </div>
  47.  
  48.         <div id="loading" style="display: none">
  49.         Идет загрузка...
  50.         </div>



PHP:
скопировать код в буфер обмена
  1. Мне нужно передать вместо <input onclick="showContent('page1.html')" type="button" value="Страница 1"> это <input onclick="showContent('script.php?id=$id&name=$name')" type="button" value="Страница 1">



Но я увы немогу этова сделатьНедовольство, огорчение
 
 Top
Ch_chov
Отправлено: 28 Апреля, 2014 - 08:15:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




managua пишет:
Также пробовал на Гетах разобраться, в html документах все удается спокойно!

А что такое "Геты"?
 
 Top
managua
Отправлено: 28 Апреля, 2014 - 08:34:13
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




GET - запросы Ниндзя или тебе формулировка нужна?
 
 Top
Ch_chov
Отправлено: 28 Апреля, 2014 - 08:39:20
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Мм, а почему с большой буквы? У тебя какой то собственный слэнг. Очень тяжело понять что ты написал.
 
 Top
managua
Отправлено: 28 Апреля, 2014 - 08:59:03
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Просто привычка, сленга нет!
Цитата:
Очень тяжело понять что ты написал.

Этова я не учелУлыбка
Вот смотри, типичная ситуация!
На странице есть 3 сылки!
При клике по любой из них обновляется весь документ полностью т.е шапка->тело->ноги
Мне нужна информация касаемо реализации загрузки документа который находится допустим в диве <div class="mainmenu">\?</div> или же загрузка тела документа без обновления шапки и ног.


<a href="scrip.php?id=1">Сылка 1</a><br />
<a href="scrip.php?id=2">Сылка 2</a><br />
<a href="scrip.php?id=3">Сылка 3</a><br />
 
 Top
Ch_chov
Отправлено: 28 Апреля, 2014 - 09:11:13
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Ну это ведь ajax обычный. На jquery одна строчка кода.
CODE (javascript):
скопировать код в буфер обмена
  1. $('.mainmenu').load('scrip.php?id=1');
 
 Top
managua
Отправлено: 28 Апреля, 2014 - 09:16:21
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Ch_chov пишет:
Ну это ведь ajax обычный. На jquery одна строчка кода.
CODE (javascript):
скопировать код в буфер обмена
  1. $('.mainmenu').load('scrip.php?id=1');


Это для тебя просто кусок кода, котый для тебя не несет особой смысловой нагрузки! Но я для меня это такой замут,что я незнаю счем его употребитьНедовольство, огорчение Будь добр дай пример полный, а то не разберусь.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. <script>
  2.     function showContent(link) {
  3.  
  4.         var cont = document.getElementById(\'contentBody\');
  5.        var loading = document.getElementById(\'loading\');
  6.  
  7.        cont.innerHTML = loading.innerHTML;
  8.        var http = createRequestObject();                   // создаем ajax-объект
  9.        if( http ) {
  10.            http.open(\'get\', link);                         // инициируем загрузку страницы
  11.            http.onreadystatechange = function () {         // назначаем асинхронный обработчик события
  12.                if(http.readyState == 4) {
  13.                    cont.innerHTML = http.responseText;     // присваиваем содержимое
  14.                }
  15.            }
  16.            http.send(null);
  17.        } else {
  18.            document.location = link;   // если ajax-объект не удается создать, просто перенаправляем на адрес
  19.        }
  20.    }
  21.  
  22.    // создание ajax объекта
  23.    function createRequestObject() {
  24.        try { return new XMLHttpRequest() }
  25.        catch(e) {
  26.            try { return new ActiveXObject(\'Msxml2.XMLHTTP\') }
  27.            catch(e) {
  28.                try { return new ActiveXObject(\'Microsoft.XMLHTTP\') }
  29.                catch(e) { return null; }
  30.            }
  31.        }
  32.    }
  33. </script>
  34.  
  35.    <p>Какую страницу желаете открыть?</p>
  36.  
  37.    <form>
  38.        <input onclick="showContent(\'test.php?x='.($x + 1).'&y='.($y + 1).'\')" type="button" value="Страница 1">
  39.    </form>
  40.  
  41.    <div id="contentBody">
  42.    </div>
  43.  
  44.    <div id="loading" style="display: none">
  45.    Идет загрузка...
  46.    </div>
  47.  
  48.  
  49.  


Если конкретней, мне нужно через button или же простой сылкой запрашивать файл test.php при этом нужно обезательно передать 2 GET или POST запроса этой странице...

В коде выше все кроме передачи GET && POST запросов работает(
 
 Top
Ch_chov
Отправлено: 28 Апреля, 2014 - 09:56:36
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




managua пишет:
при этом нужно обезательно передать 2 GET или POST запроса этой странице

Ерунда какая то. Зачем странице передавать два GET запроса? Может быть надо два параметра передать с помощью однго GET запроса?

Вот пример. Проще некуда.
http://jsbin[dot]com/kidaxawo/8
 
 Top
managua
Отправлено: 28 Апреля, 2014 - 10:07:07
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Апр. 2014  


Помог: 0 раз(а)




Эти оба запроса мне нужны чтобы сделать выборку по ключям передами этими запросами! И эти ключи не статичны.

Это чтота на подобии постраничной навигации, но чуть инова характера.
 
 Top
Zuldek
Отправлено: 28 Апреля, 2014 - 10:43:56
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




managua, вы пока не можете понять что для вашей задачи вам не нужна отправка двух get-запросов. Вы также не видите что ваши собственные скрипты будут отправлять 1 запрос, а не 2, как вам кажется.
Простейшие примеры, которые Ch_chov вам дал решают конкретно вашу задачу с отправкой запроса с нужным количеством параметров и загрузку ответа в опредёлённый блок html на странице. Однако, эта задача в примере решается не на нативном JS, как у вас, а с использованием библиотеки Jquery, которая упрощает решение многих типичных задач, включая вашу.

Чтобы вам стал понятен код примера, как и свой собственный, вам нужно:

1. Изучить по документации и понять простые в целом основы "технологии" Ajax, а именно, объект XMLHttpRequest.
2. Понять что собой представляет GET-запрос и почему их вам не нужно 2.
3. Разобрать каждую строчку своего сценария и понять что она делает.
4. Прочитать и разобрать примеры использования методов Jquery для работы с Ajax
5. Научиться отлаживать js-сценарии с использованием ajax, к примеру, с помошью дебаггеров в браузере (привет firebug), метода console.Log.
6. Решить свою задачу либо на нативном js либо на jquery, как хотите.

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

(Отредактировано автором: 28 Апреля, 2014 - 10:49:02)

 
 Top
nerv
Отправлено: 28 Апреля, 2014 - 16:06:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)




Ch_chov пишет:
А что такое "Геты"?

Цитата:
Геты (англ. Geth) — раса синтетиков, проживающих за Вуалью Персея

Ха-ха

Типичный представитель


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
esterio
Отправлено: 28 Апреля, 2014 - 16:11:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)





Да ладно набросились, но не знает человек еще термины.


http://javascript[dot]ru/ajax/intro
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB