PHP код за Ajax JSON заявка

В този пост ще бъде описано накратко какво представлява един PHP файл (сървърен скрипт), който трябва да прочете идващия JSON обект от JavaScript-a. който е предназначен да изпрати и в последствие изиска някакви данни от сървъра (най-често данни съдържащи се в базата данни на сайта ни). Ако не е ясно точно за какъв JavaScript код става на въпрос може да прочетете поста “Ajax заявка чрез JSON обект“.

Целта на нашия сървърен скрипт ще бъде да прочете идващите данни чрез JSON обект, да направи нещо с тях и да върне отново отговор на браузъра на потребителя с помощта на JSON обект. Нека нашия файл се казва serverScript.php и неговото съдържание бъде следното:

<?php

$js_json_obj = jsonString2Object($_POST[‘myobj’]);

$php_json_obj = array();

if (strlen($js_json_obj->first_name) < 2 || strlen($js_json_obj->last_name) < 2){

$php_json_obj[‘is_valid’] = ‘Човека няма зададени имена’;

}else{

$php_json_obj[‘is_valid’] = ‘Човека има зададени имена и пол’;

}

echo json_encode($php_json_obj);

?>
<?php

function jsonString2Object($str){

return json_decode(stripslashes($str));

}

?>

Ето и обяснението на нашия код ред по ред:

– $js_json_obj = jsonString2Object($_POST[‘myobj’]);//създаваме нова php променлива $js_json_obj, която ще представлява php обект. Функцията jsonString2Object получава като параметър JSON обекта идващ от post заявката от JavaScript кода. Забележете че достъпваме JSON обекта идващ от JavaScript чрез името (myobj) зададено при стартирането на post заявката. Погледнете кода в поста  “Ajax заявка чрез JSON обект“.

– $php_json_obj = array();//създаваме нов масив, който ще съдържа по-късно данните които искаме да върнем JavaScript кода от web страницата ни.

– if (strlen($js_json_obj->first_name) < 2 || strlen($js_json_obj->last_name) < 2)//правим проверка дали в данните които получаваме от JavaScript има зададени имена на човек

– $php_json_obj[‘is_valid’] = //в зависимост от това дали в JSON обекта идващ от JavaScript има или няма зададени имена, задаваме различни стойности на член променливата ‘is_valid’ от масива $php_json_obj

– echo json_encode($php_json_obj);//връщаме на JavaScript кода резултата от действията ни в PHP сървърния скрипт. Тези резултати ние сложихме в член променлива на масив, който масив чрез функцията  json_encode() – част от PHP езика, се превръща във валиден JSON код.

След като върнем като резултат JSON обекта създаден от PHP, в JavaScipt кода ние трябва да превърнем този обект отново в JavaScript променлива за да може JavaScript да работи с него като JSON обект. Ако приемем, че отговора от PHP е returned_data, това може да стане по следния начин:

eval(“var data =”+returned_data);

След този ред ако в JavaScript използваме код:

console.log(data.is_valid);

//ще получим изписан в конзолата резултата върнат от PHP скрипта

 

 

 

7 thoughts on “PHP код за Ajax JSON заявка

  1. Видях че при опит за използване кода на скрипта и копирането му директно от страницата, там където има зададени текстове (стрингове) за стойности на променливи е необходимо да изтриете и напишете отново кавичките. В противен случай PHP синтаксиса е грешен и кода не може да се изпълни коректно. Иначе кода си е верен.

Leave a Reply

Your email address will not be published. Required fields are marked *