Burada esasında AJAX’lı uygulamalarda zamandan ve koddan tasarruf sağlasın diye hazırlanmış örnek bir uygulama yer alıyor. Kodlarının en önemli noktasını web formunun kolayca gönderilmesini sağlayan el yapımı javascript fonksiyonu oluşturuyor. getForm ismindeki fonksiyon parametre olarak verilen formdaki tüm input nesnelerini (checkbox ve radio’da dahil) isim ve içerikleriyle bilrlikte string formatına çeviriyor.
Örnek vermek gerekirse adiText isimli bir metin kutusu, evliRadio isimli radio takımı, hobi1 ve hobi2 ismindeki checkbox’ların yer aldığı bir formu; adiTextBox=ensei&evliRadio=false&hobi1=true&hobi2=false şeklindeki bir string’e çevirmeye yarıyor. AJAX yontemiyle bir html formu PHP’ye gönderilmek istendiğinde yukarıdaki gibi bir string mutlaka oluşturulmalı. Zaten AJAX yönteminde form doğrudan sayfa ile post edilmek yerine XMLRequest nesnesi aracılığıyle gönderiliyor ve çıktısı alınıyor.
1 |
<font color="#0000ff">function</font><font color="#000000"> getForm</font><font color="#8000ff">(</font><font color="#000000">fobj</font><font color="#8000ff">)</font><font color="#000000"> </font><font color="#8000ff">{</font><font color="#000000"> </font><font color="#0000ff">var</font><font color="#000000"> str </font><font color="#8000ff">=</font><font color="#000000"> </font><font color="#ff6820">""</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">var</font><font color="#000000"> ft </font><font color="#8000ff">=</font><font color="#000000"> </font><font color="#ff6820">""</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">var</font><font color="#000000"> fv </font><font color="#8000ff">=</font><font color="#000000"> </font><font color="#ff6820">""</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">var</font><font color="#000000"> fn </font><font color="#8000ff">=</font><font color="#000000"> </font><font color="#ff6820">""</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">var</font><font color="#000000"> els </font><font color="#8000ff">=</font><font color="#000000"> </font><font color="#ff6820">""</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">for</font><font color="#8000ff">(</font><font color="#0000ff">var</font><font color="#000000"> i </font><font color="#8000ff">=</font><font color="#000000"> 0</font><font color="#8000ff">;</font><font color="#000000">i </font><font color="#8000ff"><</font><font color="#000000"> fobj.elements.length</font><font color="#8000ff">;</font><font color="#000000">i</font><font color="#8000ff">++)</font><font color="#000000"> </font><font color="#8000ff">{</font><font color="#000000"> els </font><font color="#8000ff">=</font><font color="#000000"> fobj.elements</font><font color="#8000ff">[</font><font color="#000000">i</font><font color="#8000ff">];</font><font color="#000000"> ft </font><font color="#8000ff">=</font><font color="#000000"> els.title</font><font color="#8000ff">;</font><font color="#000000"> fv </font><font color="#8000ff">=</font><font color="#000000"> els.value</font><font color="#8000ff">;</font><font color="#000000"> fn </font><font color="#8000ff">=</font><font color="#000000"> els.name</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">switch</font><font color="#8000ff">(</font><font color="#000000">els.type</font><font color="#8000ff">)</font><font color="#000000"> </font><font color="#8000ff">{</font><font color="#000000"> </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"text"</font><font color="#000000">: </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"hidden"</font><font color="#000000">: </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"password"</font><font color="#000000">: </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"textarea"</font><font color="#000000">: </font><font color="#808080">// is it a required field? </font><font color="#000000"> </font><font color="#0000ff">if</font><font color="#8000ff">(</font><font color="#000000">encodeURI</font><font color="#8000ff">(</font><font color="#000000">ft</font><font color="#8000ff">)</font><font color="#000000"> </font><font color="#8000ff">==</font><font color="#000000"> </font><font color="#ff6820">"required"</font><font color="#000000"> </font><font color="#8000ff">&&</font><font color="#000000"> encodeURI</font><font color="#8000ff">(</font><font color="#000000">fv</font><font color="#8000ff">)</font><font color="#000000">.length </font><font color="#8000ff"><</font><font color="#000000"> 1</font><font color="#8000ff">)</font><font color="#000000"> </font><font color="#8000ff">{</font><font color="#000000"> alert</font><font color="#8000ff">(</font><font color="#ff6820">'''+fn+'' is a required field, please complete.'</font><font color="#8000ff">);</font><font color="#000000"> els.focus</font><font color="#8000ff">();</font><font color="#000000"> </font><font color="#0000ff">return</font><font color="#000000"> </font><font color="#0000ff">false</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#8000ff">}</font><font color="#000000"> str </font><font color="#8000ff">+=</font><font color="#000000"> fn </font><font color="#8000ff">+</font><font color="#000000"> </font><font color="#ff6820">"="</font><font color="#000000"> </font><font color="#8000ff">+</font><font color="#000000"> encodeURI</font><font color="#8000ff">(</font><font color="#000000">fv</font><font color="#8000ff">)</font><font color="#000000"> </font><font color="#8000ff">+</font><font color="#000000"> </font><font color="#ff6820">"&"</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">break</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"checkbox"</font><font color="#000000">: </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"radio"</font><font color="#000000">: </font><font color="#0000ff">if</font><font color="#8000ff">(</font><font color="#000000">els.checked</font><font color="#8000ff">)</font><font color="#000000"> str </font><font color="#8000ff">+=</font><font color="#000000"> fn </font><font color="#8000ff">+</font><font color="#000000"> </font><font color="#ff6820">"="</font><font color="#000000"> </font><font color="#8000ff">+</font><font color="#000000"> encodeURI</font><font color="#8000ff">(</font><font color="#000000">fv</font><font color="#8000ff">)</font><font color="#000000"> </font><font color="#8000ff">+</font><font color="#000000"> </font><font color="#ff6820">"&"</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">break</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">case</font><font color="#000000"> </font><font color="#ff6820">"select-one"</font><font color="#000000">: str </font><font color="#8000ff">+=</font><font color="#000000"> fn </font><font color="#8000ff">+</font><font color="#000000"> </font><font color="#ff6820">"="</font><font color="#000000"> </font><font color="#8000ff">+</font><font color="#000000"> els.options</font><font color="#8000ff">[</font><font color="#000000">els.selectedIndex</font><font color="#8000ff">]</font><font color="#000000">.value </font><font color="#8000ff">+</font><font color="#000000"> </font><font color="#ff6820">"&"</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#0000ff">break</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#8000ff">}</font><font color="#000000"> </font><font color="#808080">// switch </font><font color="#000000"> </font><font color="#8000ff">}</font><font color="#000000"> </font><font color="#808080">// for </font><font color="#000000"> str </font><font color="#8000ff">=</font><font color="#000000"> str.substr</font><font color="#8000ff">(</font><font color="#000000">0</font><font color="#8000ff">,(</font><font color="#000000">str.length </font><font color="#8000ff">-</font><font color="#000000"> 1</font><font color="#8000ff">));</font><font color="#000000"> </font><font color="#0000ff">return</font><font color="#000000"> str</font><font color="#8000ff">;</font><font color="#000000"> </font><font color="#8000ff">}</font><font color="#000000"> </font> |
PHP tarafında form değişkenlerini okutmak için kullanılacak kod parçasıda kısaca söyle:
1 |
<font color="#000000"> </font><strong><font color="#0000ff">foreach</font></strong><font color="#000000">(</font><font color="#ff0000">$_GET</font><font color="#000000"> </font><strong><font color="#0000ff">as</font></strong><font color="#000000"> </font><font color="#ff0000">$a</font><font color="#000000"> => </font><font color="#ff0000">$b</font><font color="#000000">) { </font><strong><font color="#0000ff"> </font></strong><font color="#000000"><br /> </font><font color="#000000">echo</font><font color="#000000"> </font><font color="#ff6820">"<b>$a</b>: "</font><font color="#000000">.</font><font color="#000000">stripslashes</font><font color="#000000">(</font><font color="#000000">htmlentities</font><font color="#000000">(</font><font color="#ff0000">$b</font><font color="#000000">)).</font><font color="#ff6820">" <br />"</font><font color="#000000">; } <br /> </font><font color="#000000">}</font> |
Yazan: Tankado