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
|
|
| |