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 :: нужна помощь с ajax

 PHP.SU

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


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

> Без описания
Дима
Отправлено: 07 Июня, 2011 - 19:04:56
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


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




Здравствуйте, пытаюсь переделать добавление сообщения в базу с php на ajax
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function doLoad(url, strParams)
  3. {
  4.     var xmlhttp = getXmlHttp();
  5. //кроссбраузерный метод Создания объекта запроса XMLHttpRequest.
  6. //саму функцию не показываю, рабачая, проверял
  7.     var path = url;
  8.     xmlhttp.onreadystatechange = function()
  9.     {
  10.         if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
  11.         {
  12.             alert(path + strParams);
  13.         }
  14.     }
  15.     xmlhttp.open('post', path, true);
  16.     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  17.     xmlhttp.send(strParams);
  18. }
  19.  

функция вызывается по onclick submita формы. В strParams измененяю текущий урл, прибавляю к последнему параметру + 1, но после отправки формы урл остается без изменений.
 
 Top
DeepVarvar Супермодератор
Отправлено: 07 Июня, 2011 - 19:19:27
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




http://xmlhttprequest[dot]ru/
Дима пишет:
прибавляю к последнему параметру + 1

Дима пишет:
path + strParams

строка + число = дрисня...
(Добавление)
Или дайте больше кода
 
 Top
Дима
Отправлено: 07 Июня, 2011 - 22:36:36
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


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




DeepVarvar, я ошибся не + 1, а = 1, последнему параметру я присваиваю 1. alert(path + strParams); срабатывает, значит ответ с сервера приходит. Вопрос в том почему урл не изменяется, насколько я знаю с методом отправки пост параматры передаются в send().
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Июня, 2011 - 00:19:37
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Потому, что вы делаете алерт суммы, но не суммируете.
 
 Top
Viper
Отправлено: 08 Июня, 2011 - 07:22:28
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




CODE (javascript):
скопировать код в буфер обмена
  1. var summ = path + strParams;
  2. alert(summ);


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Дима
Отправлено: 08 Июня, 2011 - 08:27:52
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


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




я вот подумал какая разница что в этом алерте, главное что он срабатывает, а значит ответ с сервера приходит, волнует что урл не меняется и сообщение появляется на странице только после перезагрузки. Сделал тестовый пример, поместил все в один файл и php и js, создал базу с одной таблицей все работает как часы. После добавления сообщения в конце урл появляется знак #, и что я только не вставлял как параметр в send() и null и какие-то другие строковые параметры в адресной строке ничего не меняется. Метод передачи данных выбрал тот-же пост. В урл вообще можно что-то изменить?

(Отредактировано автором: 08 Июня, 2011 - 10:18:31)

 
 Top
Viper
Отправлено: 08 Июня, 2011 - 11:32:19
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Дима конечно можно. просто то что идет после # можно изменить средствами JS на стороне клиента, а то что до него только с перезагрузкой страницы.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Дима
Отправлено: 08 Июня, 2011 - 15:05:47
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


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




Viper, как это сделать? В моем не тестовом примере значка # в урл вообще нет, что вообще он означает?
 
 Top
Viper
Отправлено: 09 Июня, 2011 - 07:11:33
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Дима # это якорь. Т.е. при нажатии на <a href="#test">goto</a> браузер прокрутит текущий документ до места где встречается <a name="test"></a>.

Также эти якоря можно использовать для передачи параметров, к примеру как сделано на translate.google.com.

В принципе есть плагин для jquery звется url parser. ИЗ родного JS доступ к тому что после # можно получить через document.location.hash

Также # может появлятся кода используется ajax взаимодействие при нажатии на некую ссылку в которой href="#". При этом будет добавлятся при нажатии на неё(ссылку) # в урл без параметров. ЧТобы избежать этого обычно пишут href="javascript:void(0);" либо return false в функции обрабатывающей событие для ссылки.

(Отредактировано автором: 09 Июня, 2011 - 07:13:42)



-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Дима
Отправлено: 12 Июня, 2011 - 23:01:21
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


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




Viper, как средствами пхп получить доступ к параметрам, которые передаются в send(), например send('foo='+bar); Как получить значение foo, пробовал echo $foo; echo $_REQUEST["foo"]; Или ссылку на какой-то ликбез на эту тему.

(Отредактировано автором: 12 Июня, 2011 - 23:02:37)

 
 Top
Дима
Отправлено: 13 Июня, 2011 - 11:04:35
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


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




Кроме отзывов на товар организовал ответы на отзывы, как это работает: в каждом отзыве под датой есть ссылка, нажав на которую сервер получает новый параметр с присвоенным ему номером этого сообщения и одновременно появляется форма ввода текста. В базе ответ на собщение получает его номер, а сообщение на которое ответили и те у которых номер больше прибавляю 1 и вывожу в обратном порядке, самое свежее сообщение всегда первое. Нажав на сабмит включается перенаправление, чтобы включить метод вывода сообщений еще раз(чтобы показать только что добавленное) и прячу форму. Пытаюсь все это заменить аджаксом, сообщения уже добавляются, но с ответами пока тихо. Есть функция, которая присваивает параметры и их значения в переменную и делает форму видимой:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function showFormOpAnswer(id, idOp)
  3. {
  4.     strParams = 'proId='+ id +'&op&answer='+idOp;
  5.     var f = document.getElementById('formOp');
  6.     f.style.display = 'block';
  7. }
  8.  

id - id конкретного товара
idOp - id отзыва для ответа на него
вызываю:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <A href="javascript: void(0)" onClick="showFormOpAnswer('.$id.', '.$resId['orderId'].');">Ответить:</a>
  3.  

strParams для того, чтобы передать её в метод xmlhttp.send(strParams); аджакс функции отправки запроса и получения ответа
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function doLoad(url)
  3. {
  4.     var xmlhttp = getXmlHttp();
  5.     var path = url;
  6.     xmlhttp.open('post', path, true);
  7.     xmlhttp.onreadystatechange = function()
  8.     {
  9.         if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
  10.         {
  11.             alert(xmlhttp.statusText);
  12.         }
  13.     }
  14.     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  15.     xmlhttp.send(strParams);
  16. }
  17.  

её вызов по онклик сабмита формы. Параметр "<? echo $_SERVER['PHP_SELF']; ?>"
Как с аджаксом передать нажатием на ссылку этот параметр(id сообщения)?

(Отредактировано автором: 13 Июня, 2011 - 11:12:56)

 
 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