ü = %FC

Ü = %DC

ö = %F6

Ö = %D6

ı = %FD

İ = %DD

ğ = %F0

Ð = %D0

ş = %FE

Ş = %DE

ç = %E7

Ç = %C7

% = %25

& = %26

[ = +%5B

] = %5D

{ = %7B

} = %7D

? = %3F

= = %3D

Şimdi biraz dizi-değişken içine dizi-değişken koyalım! Yani ziyaretçinin göndereceği bilgiler, buradaki gibi SELECT..OPTION etiketinde yapacağı sadece bir unsur seçimi olmasın da çoklu-seçim olsun. bilgilerinizi yoklarsanız, bunu SELECT etiketini MULTIPLE parametresi ile yapabildiğimizi hatırlayacaksınız. Biraz önceki kaydettiğimiz dosyanın sadece ünü aşağıdaki gibi geliştirerek, formlar03a.htm adıyla kaydedelim:

:

< ACTION="formlar03a_isle." METHOD="GET">

Adınız, Soyadınız: <INPUT TYPE="TEXT" NAME="adi">

<BR>

Elektronik Adresiniz: <INPUT TYPE=TEXT" NAME="adres">

<BR>

Hangi notunuzu öğrenmek istiyorsunuz?

<BR>

<SELECT NAME="hangi_not[]" MULTIPLE>

<OPTION>Sınav 1

<OPTION>Sınav 2

<OPTION>Ortalama

</SELECT>

<BR>

<INPUT TYPE="SUBMIT" VALUE="Gönder Gitsin!"> <INPUT TYPE="RESET" VALUE="Vazgeç, Gönderme!">

</>

Burada, `in SELECT.. OPTION etiketlerini kullanarak, ziyaretçimizden hangi sınav notunu öğrenmek istediğini bize bildirmesini istiyoruz. Dikkat ettiğiniz gibi, bu kez , elde edeceği verileri formlar03a_isle. ına yollamak istiyor. `daki <SELECT NAME="hangi_not[]" MULTIPLE> satırına da dikkat ettiniz mi? Bu satırın özelliği, daha önceki SELECT..OPTION etiketinden farklı olarak ziyaretçinin çoklu seçme yapmasına imkan veriyor; elde edilecek değeri "hangi_not[]" alanının değeri olarak bildiriyor. HTTP iletişim ilkelerine göre çoklu-seçim halinde seçilen OPTION değerleri Sunucu`ya aynı alan adının şısına yazılarak gönderilir. Formumuzun göndereceği bilgi yumağını satırlar haline getirirsek (HTTP ünü atar URL kodlarını çözersek) bunu görebiliriz:

Alıntı:
adi=Şahika Tabak

adres=stabak@somenet.com

hangi_not[]=Sınav 1

hangi_not[]=Sınav 2

hangi_not[]=Ortalama

Kendisine böyle bir bilgi yumağı gelen Server, bunun tümünü $HTTP_GET_VARS dizi değişkeninin içine yazacaktır. Başka bir deyişle, bu dizi değişken çıok-boyutlu çok-elemanlı ilişkili-dizi olduğu için, içinde rahatça aynı isimde değişkenlere farklı endeks sayısı verecektir. Fakat sorun `nin, bu dizinin içinden değişkenleri almasında ortaya çıkacak endeks ismi aynı olan değişkenler sorun olacaktır. Bunu değişkenin endeks adı olarak kullanılacak kelimenin yanına köşeli parantez koyarak çözüyoruz. bu adı görünce, bunun çok-elemanlı bir dizi değişken olacağını anlayacaktır.

Eğer bu formu, formlar03_isle. ına gönderseniz (bunu yapabilirsiniz?), "hangi_not" değişkeninin değeri olarak Browser penceresinde "array" kelimesinin belirdiğini görebilirsiniz. Çünkü açısından bu değişken bir dizidir içinde anahtar=değer çiftleri vardır. Daha önce anahtar=değer çiftlerini geçici değişkenlere atayıp bir döngü ile yazdırmıştık. Şimdi, kodumuzu bu duruma uygun hale getirelim. Biraz önce yazdığımız işleme ının sadece ünü şöyle değiştirerek, formlar03a_isle. adıyla kaydedelim:

:

<?

foreach ($HTTP_GET_VARS as $anahtar=>$deger ) {

if ( gettype ($deger ) == "array" ) {

print ("$anahtar == <br>n");

foreach ( $deger as $yeni_degerler )

print (".. $yeni_degerler<br>");

}

else {

print ("<b>$anahtar = $deger <br>n");

}

}

?>

`nin gettype() fonksiyonunu daha önce görmüş bir değişkenin türünü anlamaya yaradığını öğrenmiştik. Burada $HTTP_GET_VARS değişkeninden aldığımız değerlerden herhangi birinin gerçekten bir değişken değeri mi, yoksa bir dizi (array) mi olduğunu gettype() ile anlayabiliriz. Eğer değer olarak şımıza "array" kelimesi çıkarsa, bunu kendi içinde anahtar değer olarak bölebilir herbirini ayrı ayrı görüntüleyebiliriz. Eğer $HTTP_GET_VARS değişkeninden aldığımız değer, dizi değil de gerçekten bir değişken ise (else) doğruca bu değeri anahtarını yazdıracaktır. Sonuç ise dizi-değişken içindeki dizi-değişkenin değerlerinin tek tek görüntülenmesi olacaktır.

kaynak: ordan burdan

Tags: , , , , , , , , , , , , , , , , ,
Php - Türkçe önemli Karakterler Ve Url Kodları (scripti, nasıl, nedir?) konusu
Benzer yazılar:
    Benzer yazı yok