Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Webmaster Kaynaklari » Sunucu Tabanlı Programlama (Server Side) » birbirine bağlı form elemanları?


Sunucu Tabanlı Programlama (Server Side) Perl/CGI, PHP, ASP, JSP, .NET ve diğer programlama dilleri hakkındaki sorularınıza, paylaşmak istediklerinize ve örnek kodlara bu alanda yer verebilirsiniz.

Yanıt
 
LinkBack Seçenekler
Old 18.01.2007   #1 (permalink)
magos
 
Üyelik Tarihi: 09.11.2006
Yer: izmir
Mesaj: 192
birbirine bağlı form elemanları?

selam arkadaslar. benim yapmak istediğim bir form var. formda iki selection box var. bir tanesinden secilen degerlere göre digerine otomatik belli degerler gelecek. internette böyle uygulamalar cok. bende de var birşeyler hemde istedigim tarzda calısıyor. ama benim sorunum şu. ben birinci selection box'a mysqlden verileri alacagım. onda secim yapılır yapılmazsa ikinci selection box için yine MySQL de bir sorgu yaratılacak ve ondan dönen sonuclar yazılacak. benim elimdeki örnekler js uzantılı olup hepsinde degerler elle veriliyor. bunu otomatikleştirmem lazım yani. bu işi PHP ile yapıyorum bu arada. yardımcı olacaklara şimdiden teşekkürler
magos şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 18.01.2007   #2 (permalink)
delizeka
 
delizeka's Avatar
 
Üyelik Tarihi: 22.04.2003
Yer: İstanbul
Yaş: 26
Mesaj: 112
Re: birbirine bağlı form elemanları?

Anladığım kadarı ile ajax a, en azından XMLHTTP ye ihtiyacın var. Yani elimizde iki tane selectbox var, birisinin verileri sayfa ile beraber geliyor. İstiyoruz ki birincisinde birşey seçildiğinde ikincisi de otomatik olarak birinci seçeneğe bağlı bazı sonuçlar getirsin ve tüm olası sonuçlar için sayfanın içine sabit bir şekilde yazmış olmayayım.

Bence iki çözümü var:

Diyelim ki ilk selectbox şehirleri ikincisi de şehire bağlı ilçeleri gösterecek olsun. Çalıştığımız sayfa sehir.PHP olsun.

1. çözüm : 1. selectbox'a tıklandığında sehir.PHP?sehirID=<seçilen şehir IDsi> gibi sayfaya gider otomatik olarak, sayfa tekrar açılırken ikinci selectbox'ı queryden şehir ID yi alarak doldurabilirsin ve sadece o şehir için veri almış olursun. Ama bunu önermiyorum, çünkü her şehir değiştiğinde sayfa yeniden yüklenecek.

2. çözüm : XMLHTTP kullanmak. Birinci selectbox seçildiğinde javascriptle -mesela- ilcegetir.PHP ye bir istekte bulunursun. ilcegetir sayfası da sadece o ile ait ilçeleri getirir, javascriptle değerleri alarak ikinci selectbox ı doldurabilirsin. Bilinen tanımı ile bu kısaca ajax olmuş oluyor. Sayfa yenilenmeye ihtiyaç duymuyor. Bence sen de böyle yapabilirsin.

İnternetten ajax için birçok örnek bulabilirsin ama gene de takılırsan kod düzeyinde yardımcı olmaya çalışırım.
__________________
http://www.kimindir.com - Alan adı sorgulama (whois) servisi... [v0.4 beta]
delizeka şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 18.01.2007   #3 (permalink)
magos
 
Üyelik Tarihi: 09.11.2006
Yer: izmir
Mesaj: 192
Re: birbirine bağlı form elemanları?

1. çözümün cok zor benim için çünkü baya bir veri var. ikinci çözümünü zaten bende soruyorum buraya. aramam gereken şeyi biliyorum fakat iyi bir sonuc bulamadım o yüzden buraya soruyorum.
magos şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 18.01.2007   #4 (permalink)
delizeka
 
delizeka's Avatar
 
Üyelik Tarihi: 22.04.2003
Yer: İstanbul
Yaş: 26
Mesaj: 112
Re: birbirine bağlı form elemanları?

Kişisel olarak XMLHTTP yi XML yerine JSON ile kullanıyorum. Hem JavaScript tarafında XML ile uğraşmak zorunda kalmıyorum hem de server tarafında JSON datası üretmek daha kolay geliyor.

Veritabanında bir sehir ve bir ilce tablomuz olduğunu varsayıyorum.

Sehir.PHP dosyamız şu şekilde olsun :

PHP Code:
<?
//Starting MySQL connection
$conn mysql_connect("localhost""username""sifre");
mysql_select_db("veritabani") or die(mysql_error());
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Sehirler ve ilceler</TITLE>

<script LANGUAGE="JavaScript">
<!--

function ilcegetir(ilceID){

    ilceID = parseInt(ilceID);

    if (ilceID != 0){
        
        if(window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera
        } else if(window.ActiveXObject) {
            xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); // internet Explorer
        } else {
            return false;
        }

        xmlhttp.open("GET", "http://delizeka.com/files/ilcegetir.PHP?ID=" + ilceID, true);

        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState == 4) { 

                // JSON olarak ilceleri aliyoruz.
                var obje = eval('(' + xmlhttp.responseText + ')');
                
                ilcelerSelectBox = document.getElementById('ilceler');

                //eski optionlari remove ediyoruz
                for (i=0;i<ilcelerSelectBox.options.length;i++){
                    ilcelerSelectBox.remove(i);
                }

                //yeni optionlari ekliyoruz
                for(i=0;i<obje.ilceler.length;i++){
                    var opsiyon = new Option(obje.ilceler[i].ilceadi, obje.ilceler[i].ilceid);
                    ilcelerSelectBox.options[i] = opsiyon;
                }

            }
        }
        xmlhttp.send(null);
        
    }

}

//-->
</script>

</HEAD>
<BODY>

<select name="sehirler" onchange="ilcegetir(this.options[this.selectedIndex].value)">
<option value="0">---- Seciniz ----</option>
<?

    $result 
mysql_query("select * from sehirler");

    while(
$data mysql_fetch_array($result)){
        
?>
        <option value="<? echo $data['sehirID']; ?>"><? echo $data['sehirAdi']; ?></option>
    <?
    
}
    
?>
</select>

<select name="ilceler" id="ilceler">
</select>

<br>
</BODY>
</HTML>
ve XMLHTTP ile isteyeceğimiz JSON üreterek ilçeleri verecek ilcegetir.PHP dosyamız da şu şekilde olsun :

PHP Code:
<?
//Starting MySQL connection
$conn mysql_connect("localhost""username""sifre");
mysql_select_db("veritabani") or die(mysql_error());

    
$result mysql_query("select * from ilceler where sehirID = " $_GET['ID']);

    
#JSON olustur
    
$json_text .= "{\n";
    
$json_text .= "\"ilceler\": [ \n";
    
$json_text2 "";
              
    while(
$ilceler mysql_fetch_array($result)){
        
$json_text2 .= "{ \"ilceid\": \"" $ilceler['ilceID'] . "\", \"ilceadi\": \"" $ilceler['ilceAdi'] . "\" },";
    }

    
$json_text2 substr($json_text20strlen($json_text2)-1);

    
$json_text .= $json_text2;

    
$json_text .= " ]\n";
    
$json_text .= " }\n";

    
#Json i goster
    
print $json_text;
?>
Böylece istediğin gibi bir sistem elde etmiş oluyoruz. JSON, XML e göre çok daha kolay kullanılabilen bir veri gönderme şekli. Google da JSON olarak aratırsan syntax i hakkında bilgiler bulabilirsin. İstersen XML e de çevirebilirsin, ama bu kez sehir.PHP de alacağın XML i parse etmek gerekecek.

Bu örneği benim sitenin altına koydum, ordan da test edebilirsin:
http://delizeka.com/files/sehir.php

Kolay gelsin.
__________________
http://www.kimindir.com - Alan adı sorgulama (whois) servisi... [v0.4 beta]
delizeka şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 18.01.2007   #5 (permalink)
magos
 
Üyelik Tarihi: 09.11.2006
Yer: izmir
Mesaj: 192
Re: birbirine bağlı form elemanları?

evet bu örnek güzel olmuş. deneyecegim hemen sonuclardan haberdar ederim burayıda teşekkür ettim tekrar. ellerine saglık
magos şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 19.01.2007   #6 (permalink)
magos
 
Üyelik Tarihi: 09.11.2006
Yer: izmir
Mesaj: 192
Re: birbirine bağlı form elemanları?

hocam örnegini inceledim. birincisi şu. ben kendi veritabanıma göre uyarladım bunu fakat şöyle bir şey olustu. İlk gelen il verilerinden birincisini seçtiğim zaman yan tarafta güzel bir şekilde ilcesi geldi. fakat ikinci veriyi seçtigim zaman ona ait olan ilçeler olmasına ragmen veri gelmedi ve şöyle bir hata verdi

Line : 31
Char : 17
Error : Sonlandırılmamış dize sabiti
Code : 0
URL : http://localhost/ilceler.php

bu neden kaynaklanır yardımcı olursan sevinirim. İkinci sorunum ise bu konuyla ilgili. Bunu tekrar eden dizi halinde de calıstıramadım. Yani ben bir for döngüsü ile bunu 10 adete veya daha fazla adete cıkarmak istiyorum. Ama beceremedim. Yani alt alta sıralıyor tabikide form elemanlarını ama secince sonuc alamıyorum. Seni çok yoruyorum hocam özür dilerim ayrıca bunun için.

Bir baska bir sorun daha olacaktı onu farklı bir baslıkta yazmak istemedim. Şimdi elimde 12 adet ayları temsil eden text boxlar var. ocak ayına girilen yazı veya sayının otomatik olarak diger ayların text boxınada girilmesini istiyorum. Buda yine dizi halinde olacak. Yani alt alta bir for döngüsü ile 10 dan fazla olcak mesela. normali becerdim ama çokluyu yapamadım. bunada bakabilirsen cok sevinirim.

Herkese iyi çalışmalar
magos şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 22.01.2007   #7 (permalink)
magos
 
Üyelik Tarihi: 09.11.2006
Yer: izmir
Mesaj: 192
Re: birbirine bağlı form elemanları?

nette buldugum bir sistemi kendime göre uyarladım. aşağıda kodları yazılı oldugu sekilde tek satırda güzel çalışıyor. fakat yine sorunum aynı. Yani bunu birden fazla satırda işleyemiyorum. Yani ben istiyorumki bir for döngüsü ile bunları 10 satırda kullanabileyim. Yani birinci satırda 1. selecti seçtiğimde hemen yanındakine veriler gelsin. ikinci satırda aynı işlemi yapacak vs vs. koda bakarak yardımcı olabilirseniz çok sevinirim. iyi çalışmalar.


HTML Code:
<HTML>
<head>
<title>Chained Selects Step-by-step: Implement the list group (Demo)</title>
<link rel=stylesheet href="../cs.CSS" type="text/CSS">
<script language="JavaScript" src="fonksiyon/chainedselects.js"></script>
<? 
include("baglanti.PHP");
$ilsor=mysql_query("select * from il order by id asc");
$ilsay=mysql_num_rows($ilsor);
for($r=0;$r<$ilsay;$r++){
$ilid[]=mysql_result($ilsor,$r,id);
$ilad[]=mysql_result($ilsor,$r,ad);
}

$bolum1="<script language=\"JavaScript\">

// define a list group
addListGroup(\"iller\", \"makers\");";

for($i=0;$i<$ilsay;$i++){
$ilcesor=mysql_query("select * from ilce where il_id='$ilid[$i]'");
$bolum2=$bolum2."addList(\"makers\", \"".$ilad[$i]."\", \"".$ilad[$i]."\", \"$i-list\");";
while($ilcelis=mysql_fetch_array($ilcesor)){
$bolum4=$bolum4."addList(\"$i-list\", \"$ilcelis[ad]\", \"$ilcelis[ad]\", \"$ilcelis[id]\");";
}
}
$bolum3="</script>";
echo $bolum1.$bolum2.$bolum4.$bolum3;
?>
</head>

<body onLoad="initListGroup('iller', document.forms[0].maker, document.forms[0].type);">
<table align="center" cellpadding="0" cellspacing="0" border="0" width="90%"><tr><td>
<p align="center" class="title"></p>
<center>
<form action="demo.PHP">
<select name="maker" id="maker" style="width:120px">
</select>
<select name="type" id="type" style="width:120px">
</select>
<label>
<input type="submit" name="Submit" value="Submit">
</label>
</form>
</center>

<p class="para">&nbsp;</p>
<p align="center"><? echo "$maker"." "."$type"; ?></p>
<p>&nbsp;</p>
</td></tr></table>

</body>

</HTML>

Mesaj magos tarafından 22.01.2007 (12:18) yeniden düzenlendi..
magos şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 25.01.2007   #8 (permalink)
stalker
 
stalker's Avatar
 
Üyelik Tarihi: 01.11.2000
Yer: İstanbul
Yaş: 26
Mesaj: 713
Re: birbirine bağlı form elemanları?

form ve başka ihtiyaçlar için PEAR kullanmayı düşündün mü?

Pear'in form kütüphanesi "QuickForm"

http://pear.php.net
__________________
life is better without braces
stalker şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 30.01.2007   #9 (permalink)
magos
 
Üyelik Tarihi: 09.11.2006
Yer: izmir
Mesaj: 192
Re: birbirine bağlı form elemanları?

baktım ama bir seye ulasamadım ordan. bana yukardaki örnegi calıstırabilen biri olsa süper olacak. çünkü ben buraya kadar en fazla getirebildim
magos şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 12.09.2007   #10 (permalink)
emresumer
 
emresumer's Avatar
 
Üyelik Tarihi: 24.10.2001
Yer: İstanbul
Yaş: 26
Mesaj: 263
Re: birbirine bağlı form elemanları?

Bunun ASP için olanı da var mı?
emresumer şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Yanıt

Etiketler
elemanlari , form , bagli , birbirine



 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

UslanmaM baktabul.com TEKplatform TEKplatform

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama