Вторник, 16 Апреля 2024, 21:58

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » PHP + AJAX (написание функции.) (не для новичков)
PHP + AJAX (написание функции.)
WhiteFangДата: Пятница, 03 Февраля 2012, 11:09 | Сообщение # 1
частый гость
Сейчас нет на сайте
Вообщем задача такая нужно на javascript + jquery написать функцию которая будет работать почти как функция mysql_query.
В голове у меня появилась 1 идея но все таки решил написать сюда функция на js выгледит так:
Code

function Ajax(File,Vares)
{
   $.ajax({    
              type: "POST",    
              url: File,    
              data: Vares,    
              success: function(Answer){
              byid('AjaxQuery').innerHTML=Answer;
              }    
          });
          var result = byid('AjaxQuery').innerHTML;
return result;
}

думаю поняли что byid это document.getElementById()
php код не буду показывать так как он не нужен смысл поняли есть идеи как это сделать без byid()


Сообщение отредактировал WhiteFang - Пятница, 03 Февраля 2012, 11:28
lvovandДата: Пятница, 03 Февраля 2012, 11:17 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote (WhiteFang)
нужно на javascript написать функцию которая будет работать почти как функция mysql_query

что за постановка вопроса? javascript только запрос на сервер может отправить, данные то все равно будешь через php получать

если у тебя jQuery зачем вообще byid?

success: function(Answer){
$('#AjaxQuery').html(Answer);
}


Разработка и продвижение сайтов. Дизайн
WhiteFangДата: Пятница, 03 Февраля 2012, 11:27 | Сообщение # 3
частый гость
Сейчас нет на сайте
также вопрос остается зачем и почему это мои проблемы.
lvovandДата: Пятница, 03 Февраля 2012, 11:40 | Сообщение # 4
старожил
Сейчас нет на сайте
да вопрос то у тебя непонятный,
Quote (WhiteFang)
как это сделать без byid()

ну и делай сразу в success return(Answer)
и не нужен будет byid()


Разработка и продвижение сайтов. Дизайн
WhiteFangДата: Пятница, 03 Февраля 2012, 12:25 | Сообщение # 5
частый гость
Сейчас нет на сайте
выполняется функция Ajax в ней функция которая не возвращает переменную в функцию ajax нечего, так как ты сказал не реально.
lvovandДата: Пятница, 03 Февраля 2012, 12:32 | Сообщение # 6
старожил
Сейчас нет на сайте
что именно нереально?
я просто твой же код упростил, ты кладешь в блок инфу, потом читаешь ее из блока и возвращаешь, уж проще сразу возвращать тогда.

Если от php-скрипта ничего не приходит надо смотреть php-скрипт сам тогда
в js попробуй помимо success проверить также события
beforeSend:
ajaxError:
complete:
может на этапе запроса еще где-то ошибка идет


Разработка и продвижение сайтов. Дизайн
WhiteFangДата: Пятница, 03 Февраля 2012, 13:12 | Сообщение # 7
частый гость
Сейчас нет на сайте
нету ошибок с начало сам попробуй в функции из функции достать что либо (faceplam)
lvovandДата: Пятница, 03 Февраля 2012, 13:26 | Сообщение # 8
старожил
Сейчас нет на сайте
ты скинь весь код тогда или скажи что сделать хочешь от и до, а то как глухой со слепым общение

вот у тебя обработка ответа success: function(Answer)
если Answer пришел, то в чем проблема тогда не понимаю?
если не пришел надо копать почему не пришел


Разработка и продвижение сайтов. Дизайн
ЙакудДата: Пятница, 03 Февраля 2012, 14:23 | Сообщение # 9
участник
Сейчас нет на сайте
Ну запрос можно провести другой функцией в jQuery. Примерно вот так вот:

Code
$(function(){
   $.post(File, Vares, function(data){
     alert(data); // Вывод информации с сервера..
   });
});


Код на работоспособность не проверял, но по сути так...
Vares в переменной должен быть ассоциативный массив. {var:val, var:val и т.п.}


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
lvovandДата: Пятница, 03 Февраля 2012, 15:11 | Сообщение # 10
старожил
Сейчас нет на сайте
Йакуд, у него скорее вопрос не в том, как запрос отправить, а в том как обработать то, что от сервера пришло,
что то типа такого

function Ajax(....){
$.ajax({
.............
success: function(data){
///тут обрабатываем data или вызываем функцию обработки с полученным data
}
});
return(...); // и вот этот return совсем неуместен - надо было все отработать в success
}

в общем только догадываться остается, что хочет получить в итоге


Разработка и продвижение сайтов. Дизайн
WhiteFangДата: Пятница, 03 Февраля 2012, 15:47 | Сообщение # 11
частый гость
Сейчас нет на сайте
Вообщем эта функция будет работать так на сервере будет такая функция
Code

function ajax($var)
{
$result = mysql_query($var);
return $result;
}

на javascript я посылаю данные сюда и получаю ответ и нужно чтоб функция на javascript отдавала ответ вот и все.
lvovandДата: Пятница, 03 Февраля 2012, 16:19 | Сообщение # 12
старожил
Сейчас нет на сайте
что у тебя js получает и куда js должен отдать ответ?

в php у тебя выполняется скрипт, результат которого как то выводится на экран
в js - ты получаешь то что php-скриптом вывелось в строчке
success: function(Answer){
byid('AjaxQuery').innerHTML=Answer;
}
этот Answer ты можешь прямо там же обработать, можешь его в другую js-функцию отправить, но делать это надо все там же в success

а как у тебя прописано
var result = byid('AjaxQuery').innerHTML;
return result;
у тебя result вернется раньше, чем выполнится ajax-запрос, либо задержку ставить, но это извращение, либо просто в success все что тебе нужно вызывай и обрабатывай


Разработка и продвижение сайтов. Дизайн
AssasinДата: Пятница, 03 Февраля 2012, 16:45 | Сообщение # 13
web-coder
Сейчас нет на сайте
Code
function Ajax(File,Vares)
{
    $.ajax({     
               type: "POST",     
               url: File,     
               data: Vares,     
               success: function(Answer){
               return Answer;
               }     
           });
}

lvovand, правильно ответил.
ЙакудДата: Пятница, 03 Февраля 2012, 17:28 | Сообщение # 14
участник
Сейчас нет на сайте
Quote (WhiteFang)
Вообщем эта функция будет работать так на сервере будет такая функция
Code

function ajax($var)
{
$result = mysql_query($var);
return $result;
}

на javascript я посылаю данные сюда и получаю ответ и нужно чтоб функция на javascript отдавала ответ вот и все.

Так делать нельзя. У тебя будет большая уязвимость в коде. Клиент, никогда, совсем никогда не должен иметь прямого доступа к БД!!! В этом случае будет легко получить доступ к твоей базе! Создай некий API для запросов к базе.. Да, будет не так удобно с API (смотря как сделаешь ещё), но будет безопаснее!! Мой совет, оставь эту мысль и сделай иначе.. Нельзя давать юзеру доступ к БД!


"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
WhiteFangДата: Суббота, 04 Февраля 2012, 10:55 | Сообщение # 15
частый гость
Сейчас нет на сайте
Я примерно сказал как это делается будет это не значит что это так и будет.

Извините за выражение но если не умеете на глаз определять что будет делать функция то с начало проверти:
Quote

function Ajax(File,Vares) // Начинается функция  
{  
     $.ajax({      
                type: "POST",      
                url: File,      
                data: Vares,      
                success: function(Answer){ //  и в ней еще одна функция вот она
                return Answer; // это тогда она возвратит ответ функции (которая отмечена синим)
                }      
            });  
}  

А так как в функции Ajax не вызывает функцию (которая отмечена синим) не получит ответ от запроса.


Сообщение отредактировал WhiteFang - Суббота, 04 Февраля 2012, 10:55
lvovandДата: Суббота, 04 Февраля 2012, 11:52 | Сообщение # 16
старожил
Сейчас нет на сайте
Quote (WhiteFang)
Я примерно сказал как это делается будет это не значит что это так и будет.

то есть ты код еще не писал, а только предполагаешь или как?

если запрос нормально выполнился, то в методе success вызовется любая функция,
если не доходит до success, значит у тебя аяксовый запрос не доходит до success, отлови другие события
beforeSend:
ajaxError:
complete:

проверь правильно ли скрипт вызываешь, правильно ли параметры вызова задаешь


Разработка и продвижение сайтов. Дизайн
AssasinДата: Суббота, 04 Февраля 2012, 15:23 | Сообщение # 17
web-coder
Сейчас нет на сайте
Quote (WhiteFang)
А так как в функции Ajax не вызывает функцию (которая отмечена синим) не получит ответ от запроса.

Не вызвать её скрипт не сможет, как только вернется ответ от сервера сразу же сработает "синяя" функция.
ЙакудДата: Суббота, 04 Февраля 2012, 19:52 | Сообщение # 18
участник
Сейчас нет на сайте
Для справки, такая синяя функция называется callback функция.

"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso
.blanco 2.0
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » PHP + AJAX (написание функции.) (не для новичков)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг