PHP арқылы ақпаратты AJAX сұранымынан қалай қайтаруға болады?

Мен AJAX туралы оқып, менің жергілікті серверден алғашқы сұрауымды жасаймын, тек xml немесе HTML файлын сұраймын, ештеңе қиын емес. PHP-мен қазір жұмыс істеп жатырмын, мен оны жақсы түсінемін, бұл XML/HTML-ні пайдаланудан тым өзгеше емес.

Оқулықтардан өтіп, JavaScript-ге JavaScript-ке ақпарат берудің бірнеше түрлі әдістерін көрдім; Мен «дұрыс» әдіс бар ма немесе жоқ па, соны істеу үшін неғұрлым «дұрыс» тәсіл. Мен әзірше үш әдісті таптым:

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>

Серверден ақпаратты браузерге қайтару үрдісіне күмәнданбаймын. Барлық қайтып оралады? Егер бұл шын мәнінде адамдарға келуге тиіс болған болса, көрсетілетін кез келген нәрсе? Сізге алғыс айтамыз!

1

4 жауаптар

PHP сценарийлеріне браузер сұраған HTML/JSON/XML құжаттарын жасайтын бағдарламалар ретінде қарау керек. AJAX-де браузер бірдей: ол белгілі бір URL үшін құжатты сұрайды. Тек JavaScript фрагменті немесе JSON арқылы параққа кіретін JavaScript болуы мүмкін.

AJAX-тегі болсақ, «out (...)» тәсілін әлі көрмеген болсам да, бірде-бір әдіс дұрыс емес. Құжат шығаратын қандай болса да жұмыс істейді.

Жақсы тәжірибеге қатысты, сіз құжаттардың генерациясынан есептеулеріңізді бөліп алуыңыз мүмкін. Бірақ сіз алдымен PHP, HTML, AJAX және т.б. тәжірибелерімен көбірек тәжірибе жинау керек деп ойлаймын. Сіз жазған қосымшаларыңыз соншалықты үлкен болса, сіздің кодының айналасында жол табу қиындықтар туындаса, сіз MVC (бизнес-модель логикасы) және құжаттарды жасауды (көріністерді) бөліп шығару мәселесін шешетін PHP үшін шеңберлер. Symfony - танымал.

5
қосылды
Осылайша, PHP-ден жіберілген парақ AJAX сұрауы бойынша жауап мәтіні ретінде қабылданатынына сенімді болу керек пе? Түсініктемелеріңізге рахмет, бұл шын мәнінде мені «духқа айналдырды»!
қосылды автор dunnza, көзі
Мен «responseText» - AJAX жауапыңызды жазатын айнымалы болып саналады? Бұл жағдайда, иә. JQuery-де, бұл «табысты» кері қоңырау функциясына жіберілген «деректер» параметрі еді.
қосылды автор lsinger, көзі

Егер адамдарға бетке тікелей кіруге рұқсат бергіңіз келсе, жоғарыда көрсетілген код жұмыс істейді. Бірақ, егер сіз беттің жоғарғы жағына (_POST ['somevalue'] == 'login') кірсеңіз және $ ajax-ден POST-да деректерді жіберсеңіз. Егер сіз білесіз, мысалы, jQuery ajax onSuccess $ (div) .html (деректер) болса, қалған бөлік бірдей!

1
қосылды

Мен әдетте серверден кері жіберілетін бірнеше мән бармын, сондықтан мен:

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

Одан кейін мен оларға оңай қол жеткізе аламын.

alert(response.name);

JQuery сияқты JS кітапханасын пайдаланып көріңіз. Бұл өте оңай.

1
қосылды

Мен әрдайым істеймін

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

(иә мен осы мысалда білемін exit пайдаланудың қажеті жоқ)

0
қосылды
Бұл мен ғана. Мен ешқандай ақ кеңістік болмайтынына сенімдімін.
қосылды автор Peter, көзі
соншалықты қызығушылықтан, неге сіз шығуды қосасыз?
қосылды автор roselan, көзі
okok. бұл мені ғана емес, бірақ кодта «ештеңе» жасамайтын материалдарды көруге ненавижу, себебі мен мұнда неге тозақ екенін түсінуге тырысамын ... барлығы I қашан қойды; )
қосылды автор roselan, көзі