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 :: Java Script и PHP

 PHP.SU

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


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

> Без описания
MasterofCDM
Отправлено: 31 Октября, 2008 - 15:31:28
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2008  


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




CODE (text):
скопировать код в буфер обмена
  1.  
  2. <script language="JavaScript">
  3.  
  4. function testEmail(a) {
  5.  
  6. a = 1;
  7.  
  8. <?php
  9.  
  10. ...
  11.  
  12. ?>
  13.  
  14. return a;
  15. }
  16.  


Проблемка такая, нужно содержимое переменной "а " передать в php переменную $a и после обработки обратно. Пользовался поиском, информации в инете нарыл много, но все не совсем то. Какие-то громадные коды или передача через открытие страницы, а нет ли какого-нибудь более простого способа?
 
 Top
vitaliy_mad
Отправлено: 31 Октября, 2008 - 16:01:39
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




нет. тлоько вызовом скрипта... дело в том что ЯваСкрипт выполняется на клиентской машине уже после загрузки браузером кода, который выведет PHP на сервере...
 
 Top
Champion Супермодератор
Отправлено: 31 Октября, 2008 - 16:02:12
Post Id



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


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


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




АЯКС
http://javascript[dot]ru/ajax/tutorial
(Добавление)
Ваш код php размещаете у себя на сервере, передаете ему в качествет параметр вашу переменную, код выполняется и последней строкой возвращает значение оператором echo. Получаете это значение методом респонсТекст объекта хттпРеквест. Почитаете по ссылке, поймете, о чем я
 
 Top
ALEN
Отправлено: 31 Октября, 2008 - 16:10:55
Post Id



Участник


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


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




MasterofCDM
Пользуйтесь тем, что дал Champion.
(Добавление)
Вот пример скрипта:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. function createRequest() {
  3.     if (request != null)
  4.         return;
  5.  
  6.     try {
  7.         request = new XMLHttpRequest();
  8.     } catch (trymicrosoft) {
  9.         try {
  10.             request = new ActiveXObject("Msxml2.XMLHTTP");
  11.         } catch (othermicrosoft) {
  12.             try {
  13.                 request = new ActiveXObject("Microsoft.XMLHTTP");
  14.             } catch (failed) {
  15.                 request = null;
  16.             }
  17.         }
  18.     }
  19.  
  20.     if (request == null)
  21.         alert(" :-( ___ Error creating request object! ");
  22.  
  23. }
  24.  
  25.  
  26. function checklog() {
  27.     createRequest();
  28.     var txt = "вася";
  29.     var url = "skript.php";
  30.     request.onreadystatechange = updateRandNumber;
  31.     request.open("POST", url, true);
  32.     request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  33.     request.send("user="+txt);
  34. }
  35.  
  36.  
  37.  
  38. function updateRandNumber() {
  39. if (request.readyState == 4) {
  40. request.responseText;
  41. }}
  42.  

(Добавление)
request.send("user="+txt); - эта часть передает запрос, в данном случае POST.

Ниже функция "request.responseText" - данная штука - это то, что вывидит скрипт skript.php
 
 Top
MasterofCDM
Отправлено: 31 Октября, 2008 - 17:07:37
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2008  


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




Понял, спасибо!!! Буду ковыряться дальше.
 
 Top
ALEN
Отправлено: 31 Октября, 2008 - 19:44:05
Post Id



Участник


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


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




MasterofCDM
Если найдешь метод проще и удобней и кроссбраузерный, как этот - будет интересно посмотреть - выкладывай сразу!
 
 Top
MasterofCDM
Отправлено: 01 Ноября, 2008 - 09:22:36
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2008  


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




ok

еще вопросик:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. function createRequest() {
  3. if (request != null)
  4. return;
  5.  
  6. try {
  7. request = new XMLHttpRequest();
  8. } catch (trymicrosoft) {
  9. try {
  10. request = new ActiveXObject("Msxml2.XMLHTTP");
  11. } catch (othermicrosoft) {
  12. try {
  13. request = new ActiveXObject("Microsoft.XMLHTTP");
  14. } catch (failed) {
  15. request = null;
  16. }
  17. }
  18. }
  19.  
  20. if (request == null)
  21. alert(" :-( ___ Error creating request object! ");
  22.  
  23. }
  24.  
  25.  
  26. function checklog() {
  27. createRequest();
  28. var txt = "вася";
  29. var url = "skript.php";
  30. request.onreadystatechange = updateRandNumber;
  31. request.open("POST", url, true);
  32. request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  33. request.send("user="+txt);
  34. }
  35.  
  36.  
  37.  
  38. function updateRandNumber() {
  39. if (request.readyState == 4) {
  40. request.responseText;
  41. }}
  42.  


вот я запускаю "script.php", выполняется обработка и потом мне надо вернуть значения некоторых переменных обрато в JS, а как это сделать?

(Отредактировано автором: 01 Ноября, 2008 - 14:05:39)

 
 Top
Agassi
Отправлено: 02 Ноября, 2008 - 12:57:08
Post Id



Частый гость


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


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




MasterofCDM пишет:
переменной "а " передать в php переменную $a и после обработки обратно


Легче через hidden поле отправить через форму.Чем заради этого включить аякс.


Код в тестовом виде,всякие алерты нужно убрать конешно же))
PHP:
скопировать код в буфер обмена
  1.  
  2. function handleRequestStateChange()
  3. {
  4.  if(xmlHttp.readyState==4)
  5.         {
  6.         if(xmlHttp.status==200)
  7.                 {
  8.                  try
  9.                         {
  10.                  handleServerResponse();
  11.                 }
  12.              catch(e)
  13.                         {
  14.                         alert('Ошыбка чтения ответа'+e.toString());
  15.                         }
  16.                 }
  17.             else
  18.         alert('Возникли проблемы во время получения данных \n'+xmlHttp.statusText);
  19.      }
  20. }
  21. function handleServerResponse()
  22. {
  23.  
  24.  var xmlResponse=xmlHttp.responseXML;
  25.  xmlRoot=xmlResponse.documentElement;
  26.  titleArray=xmlRoot.getElementsByTagName('title');
  27.   isbnArray=xmlRoot.getElementsByTagName('isbn');
  28.   var html="";
  29.   for(var i=0;i<titleArray.length;i++)
  30.   html+=titleArray.item(i).firstChild.data+','+isbnArray.item(i).firstChild.data+'<br />';
  31.   myDiv=document.getElementById('my');
  32.   myDiv.innerHTML='Сервер говорит:<br />'+html;
  33.  }
  34.  
  35.  
  36.  
  37.  
  38. Что сервер передает при запросе AJAX
  39.  
  40.  
  41. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  42. <response>
  43. <books>
  44. <book>
  45. <title>
  46. Bulding Responsive Web Applications with AJAX and PHP
  47. </title>
  48. <isbn>
  49. 1-90481-82-5
  50. </isbn>
  51. </book>
  52. <book>
  53. <title>
  54. Beginning PHP 5 and MySql E-Commerce. From Novce to Professional
  55. </title>
  56. <isbn>
  57. 1-59059-392-8
  58. </isbn>
  59. </book>
  60. </books>
  61. </response>
  62.  


Думаю этого примера хватит.ЧТоб понять как AJAX работает,если даже не знаешь ваше про AJAX
(Добавление)
MasterofCDM пишет:
мне надо вернуть значения некоторых переменных обрато в JS, а как это сделать?


Верхный код скинул для этого вопроса
 
 Top
ALEN
Отправлено: 02 Ноября, 2008 - 21:16:17
Post Id



Участник


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


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




MasterofCDM
Получаешь ответ и делишь его по регулярным выражениям
(Добавление)
Agassi
Ничего конечно против, но лично для меня: лишнии формы они только как мусор на странице. А так все упрощено.

P.S. Это конечно уже на стиль реализаций...
 
 Top
Agassi
Отправлено: 02 Ноября, 2008 - 21:53:58
Post Id



Частый гость


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


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




ALEN пишет:
лишнии формы они только как мусор на странице.


Соглсаен.Я имеел ввиду,чтоб заради одной штуки не включить AJAX.Если проэкт большой,тогда лучше аякс.А еслималенькый проэкт.И незачем АЯКС.ТАк как мало его знают.И дальше им что-то делать кроме как получить некый код который им нужно,будет служнее
 
 Top
Champion Супермодератор
Отправлено: 03 Ноября, 2008 - 08:39:07
Post Id



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


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


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




MasterofCDM пишет:
вот я запускаю "script.php", выполняется обработка и потом мне надо вернуть значения некоторых переменных обрато в JS, а как это сделать?

Вывод выполненного скрипта хранится в свойстве responseText того объекта, что вы создавали. Скриптом надо просто вывести результат. Я ж написал
(Добавление)
Agassi пишет:
заради одной штуки не включить AJAX.
Вы хотите сказать, что ради того, чтоб посчитать одно значение, надо организовывать форму и потом перезагружать заново всю страницу? По-моему, как раз в таких случаях АЯКС как раз и нужен, чтоб без лишней перерисовки
 
 Top
ALEN
Отправлено: 03 Ноября, 2008 - 09:30:55
Post Id



Участник


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


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




Agassi
Посмотрите, что ответил Champion.

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

Теперь премер который раставит все по своим местам:

Пользователю необходимо зарегистрироватся. Нам нужно проверить логин и email на наличие в БД. Т.е. нам нужно сделать 2 запроса. Реализовать можно так:

1) ввели логин, отправили в какой-то скрипт, тот выводит не XML документ, а просто 1 или 0. Т.е. 1 - все ок, 0 - уже есть такое в БД или какие-то еще причины.
2) Вернули в JavaScript через responseText и условный оператор, если 1 - то выводим галочку, если 0 - то красный крестик.

Это быстро и пользователю комфортно.

И еще поэксперементируйте без XML.
 
 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