PHP i JSON - obsługa formularza

0

Witam.
Poniżej umieściłam kod html i php służący mi do wyswietlania numeru ubezpieczenia i nazwy ubezpieczyciela dla numeru pesel wpisanego do formularza html i obsłużonego metodą GET.Nie mogę wykorzystać metody post a wynik musi być zwrócony w formacie JSON.To co stworzyłam nie jest uniwersalne ( pisanie instrukcji warunkowych i tworzenie tablic dla każego przypadku...)Nie umiem jednak wymyślić niczego lepszego , bardziej uniwerslanej metody.Czy mógłby mi ktoś podpowiedzieć jak to lepiej wykonać ? Z góry serdecznie dziękuję

<?php
$dane1=array('nazwa ubezpieczyciela'=>'Insurance Company A' , 'numer ubezpieczenia' => '123');

$dane2=array('nazwa ubezpieczyciela'=>'Insurance company B' ,'numer ubezpieczenia'=>'345');
 
$x=$_GET['pesel'];
switch($x)
{
case '123456789123';
echo json_encode($dane1);

break;

case '987654321987';
echo json_encode($dane2);
break;

}

?>

plik html :

<html>

<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >

</head>

<body>
<form action="skrypt.php" method="get">
<p>
<h1>  Wprowadź pesel </h1>

<input type="text" name="pesel" />
<input type="submit" value="zatwierdż" />
</p>
</form>

</body>

</html>
0

Tablica jest ok, jeżeli nie chcesz używać bazy danych (ew. można w plikach). Nie wiem co byś chciała jeszcze wydumać.
Ale skoro wybierasz to po peselu to po prostu zrób tablice w ten sposób.

$dane=array(
  '80101055555'=>array('nazwa ubezpieczyciela'=>'Insurance Company A' , 'numer ubezpieczenia' => '123')
  '80101066666'=>array('nazwa ubezpieczyciela'=>'Insurance Company B' , 'numer ubezpieczenia' => '312')
);
if ($dane[$_GET['pesel']) {
  echo json_encode($dane[$_GET['pesel']);
}
else {
  // nie znalezione
}
0

OK, to już coś.Dziękuję.
Mam jeszcze jedno pytanie.W tresci zadania było napisane :

Klient (formularz w HTML) formułuje żądanie GET, adres URL zasobu wraz z parametrami
Czy ja powinnam coś w związku z url zrobić ?

W JAKI SPOSÓB mogłabym się odwołać do pliku php wykorzystując file_get_content()?
znam składnię tej funkcji ale nie wiem jak zastosować to u siebie.

0
Klawiatura napisał(a):

Klient (formularz w HTML) formułuje żądanie GET, adres URL zasobu wraz z parametrami
Czy ja powinnam coś w związku z url zrobić ?

Nie bo formularz ktory masz generuje adres URL wraz z parametrami, jak wyslesz formularz to spojrz sobie na URL w oknie przegladarki to jest juz wygenerowany adres URL

Klawiatura napisał(a):

W JAKI SPOSÓB mogłabym się odwołać do pliku php wykorzystując file_get_content()?
znam składnię tej funkcji ale nie wiem jak zastosować to u siebie.

Jesli wymogiem jest uzycie tej funkcji to jedyne miejsce jakie widze to stworzyc plik (niekoniecznie php) gdzie umiescisz te wszystkie dane np tak:

nrpesel## nazwa ubezpieczyciela##numer ubezpieczenia
nrpesel## nazwa ubezpieczyciela##numer ubezpieczenia
nrpesel## nazwa ubezpieczyciela##numer ubezpieczenia

Potem uzywajac file_get_contents pobierasz plik do stringa i tniesz go na wiersze(uzywajac funkcji explode() i znaku konca lini jako znaku podzialu) a wiersze na elementy (uzywajac podwojnych hashy jako znaku podzialu) i masz ta sam tablice co dzek69 ma w dane[];

dalej juz jak u dzek69

0

Tzn okazuje się że :
chodzi w zadaniu o to aby wynik przeszukiwania tablicy ( wynik z formacie JSON) został wyświetlony nie po stronie serwera a po stronie klienta.Czyli w pliku html ( tym samym w którym jest formularz ).Jednocześnie nie może być tak ,że instrukcja wrunkowa if znajduje się w pliku html -- > po prostu trzeba zastosować jakąś formę komunikacji plik html -serwer php- plik html.
Czy ktoś orientuje się jak ?

0

no to wszystko masz zrobione tylko trzeba to podsumowac i ogarnac:

tworzysz plik php ktory zawiera funkcje zwracajaca dany rekord(rekord moze byc wpisany w funckcje, byc pobierany z pliku lub z bazy) na podstawie paramteru nrPesel.
Paramter przesylasz za pomoca JSONA po wpisaniu go w formularz
JSONem odbierasz dany rekord i wyswietlasz go gdzie chcesz.

tak wiec masz pelne rozdzielenie PHP od HTML a JSON jest lacznikiem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1