Пятница, 25.05.2012, 13:27

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 11
Модератор форума: Assasin 
Форум игроделов » Движки для разработки игр и сложные системы разработки » Движки для браузерных игр » PHP + AJAX (написание функции.) (не для новичков)
PHP + AJAX (написание функции.)
WhiteFangДата: Пятница, 03.02.2012, 11:09 | Сообщение # 1
был не раз
Сообщений: 18
Сейчас нет на сайте
Вообщем задача такая нужно на 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.02.2012, 11:28
 
lvovandДата: Пятница, 03.02.2012, 11:17 | Сообщение # 2
заслуженный участник
Сообщений: 664
Сейчас нет на сайте
Quote (WhiteFang)
нужно на javascript написать функцию которая будет работать почти как функция mysql_query

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

на javascript я посылаю данные сюда и получаю ответ и нужно чтоб функция на javascript отдавала ответ вот и все.
 
lvovandДата: Пятница, 03.02.2012, 16:19 | Сообщение # 12
заслуженный участник
Сообщений: 664
Сейчас нет на сайте
что у тебя 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.02.2012, 16:45 | Сообщение # 13
web-coder
Сообщений: 1065
Сейчас нет на сайте
Code
function Ajax(File,Vares)
{
    $.ajax({     
               type: "POST",     
               url: File,     
               data: Vares,     
               success: function(Answer){
               return Answer;
               }     
           });
}

lvovand, правильно ответил.

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

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

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

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

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

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

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

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

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

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

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

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

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

Не вызвать её скрипт не сможет, как только вернется ответ от сервера сразу же сработает "синяя" функция.

 
ЙакудДата: Суббота, 04.02.2012, 19:52 | Сообщение # 18
участник
Сообщений: 233
Сейчас нет на сайте
Для справки, такая синяя функция называется callback функция.

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

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