PHP bilan ma'lumotni AJAX so'rovidan qanday qaytarish mumkin?

Men AJAX haqida bilib oldim va mening mahalliy serverimdan birinchi so'rovlarimni bajarishni istayman, faqat xml yoki HTML faylini talab qilaman, juda qiyin narsa yo'q. PHP bilan ishlayapman, va men buni juda yaxshi tushunaman, XML/HTMLni ishlatishdan juda farq qilmaydi.

O'quv qo'llanmalari orqali men ma'lumotni JavaScript-ga qaytarishning bir necha usullarini ko'rdim; Men "to'g'ri" yo'l yoki yo'qmi, hatto buni amalga oshirishning "yanada to'g'ri" usullari haqida qiziqaman. Hozircha uchta usulni uchratdim:

someFile.php:

<?php
$foo = $_GET['bar'];

// manipulate $foo

exit($foo);//method 1
echo $foo; //method 2

// method 3:
?>

<div id='baz'>
    

Some output to be returned to JavaScript as the 'responseText' property of the AJAX request.

<?php echo $foo ?>

</div>

Men serverdan ma'lumotni brauzerga qaytarish jarayoniga shunchaki ishonchim komil emas. Nima qaytarib yuboriladi? Bu odamlar aslida tashrif buyurishi kerak bo'lgan sahifa bo'lganida ko'rsatilishi kerak bo'lgan biror narsa bormi? Siz uchun rahmat!

1

4 javoblar

PHP skriptlarini brauzer so'ragan HTML/JSON/XML hujjatlarini yaratadigan dastur sifatida qarashingiz kerak. AJAX-da, brauzer ham xuddi shunday: hujjatni ma'lum bir URL uchun so'rash. Faqat JavaScript-ni ishlatib, sahifaga kiradigan fragment yoki JSON bo'lishi mumkin.

AJAX ga nisbatan umuman olganda, hozirda "chiqish (...)" yondashuvini ko'rmagan bo'lsam ham, hech qanday yondashuv to'g'ri emas. Hujjatlarni ishlab chiqaradigan narsa ishlaydi.

Eng yaxshi amaliyotlarga kelsak, natijada siz hisob-kitoblarni hujjatlarni ishlab chiqarishdan ajratishni xohlaysiz. Lekin siz PHP, HTML, AJAX va boshqalar bilan ko'proq tajriba orttirishingiz kerakligini taxmin qilardim. Siz yozgan ilovalar juda katta bo'lib, sizning kodingizni tekshirishda qiyinchiliklarga duch kelasiz, siz MVC hisoblar (biznes/modellashtirish mantig'i) va hujjat yaratish (fikrlarni) ajratish muammolarini hal qiladigan PHP uchun ramkalar. Symfony mashhur.

5
qo'shib qo'ydi
Shunday qilib, PHP-dan qaytarib yuborilgan sahifa AJAX so'rovida javoban javob sifatida qabul qilinadi, to'g'rimi? Izohingiz uchun tashakkur, u haqiqatan ham meni tark etdi! "
qo'shib qo'ydi muallif dunnza, manba
"ReplyText" sizning AJAX javobingizni yozadigan o'zgaruvchiga o'xshaydi? Bunday holda, ha. JQuery'da "muvaffaqiyat" qayta terish funktsiyasiga o'tkaziladigan "ma'lumotlar" parametri bo'ladi.
qo'shib qo'ydi muallif lsinger, manba

Agar odamlarga sahifaga to'g'ridan-to'g'ri kirishni ruxsat etmoqchi bo'lsangiz, yuqoridagi kod yaxshi ishlaydi. Agar siz sahifani yuqoriga qo'yishni istasangiz (_POST ['somevalue'] == 'login') va $ ajax-dan POST-da ma'lumot yuboring. Qolgan qism, masalan, jQuery ajaxda $Success $ (div) .html (ma'lumot) bilsangiz xuddi shunday!

1
qo'shib qo'ydi

Men odatda serverdan qaytarish uchun bir nechta qiymatga egaman:

<?php echo json_encode(array('name' => 'Michael', 'email' => '[email protected]'); ?>

Keyinchalik ularni ob'ekt kabi osongina foydalana olaman.

alert(response.name);

JQuery kabi JS kutubxonasidan foydalaning. Bu juda oson.

1
qo'shib qo'ydi

Men har doim qilaman

<?php
header('Content-type: text/plain; charset=utf-8');
echo $foo;
exit;
?>

(Ha, men bu misolda bilaman exit foydalanishni hojat yo'q)

0
qo'shib qo'ydi
Bu faqat men. Ishonchim komilki, javobsiz oq joy bo'lmaydi.
qo'shib qo'ydi muallif Peter, manba
shuning uchun qiziquvchanlikdan, nima uchun siz chiqishni qo'shasiz?
qo'shib qo'ydi muallif roselan, manba
okok. bu faqat men, lekin kodda "hech narsa" qiladigan narsalarni ko'rishdan nafratlanaman, chunki bu erda nima uchun do'zax bu erda ekanligini tushunishga harakat qilaman ... umuman I ni o'sha erda qoldirgan; )
qo'shib qo'ydi muallif roselan, manba
Javascript UZB
Javascript UZB
99 ishtirokchilar

@js_uzb @vuejs_uz @react_uz @nodejs_uz @angular_uz @ngTashkent @yiiframework_uz @laravel_uz @linux_uzbek @python_uz @swift_uzb —————— @uzdevgroup @UzGeeksGroup ——— @UzDev_Jobs @jobs_uzb

PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin