Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

javascript && php

Konu, 'PHP' kısmında blackhawk tarafından paylaşıldı.

  1. blackhawk

    blackhawk Üye

    Kayıt:
    16 Kasım 2002
    Mesajlar:
    244
    Beğenilen Mesajlar:
    0
    Meslek:
    ...
    merhaba arkadaşlar..


    bir sayfada veritabanından içlerini doldurduğum 2 li comboboxlar var.

    örneğin aşağıdaki gibi

    combobox1(x degeri) combobox2(1 degeri)
    combobox1(y degeri) combobox2(s degeri)
    combobox1(z degeri) combobox2(c degeri)
    combobox1(t degeri) combobox2(u degeri)
    combobox1(u degeri) combobox2(k degeri)


    sagdaki comboboxların degerleri soldakilere göre belirleniyor..
    istedigim şu:

    soldaki comboboxta bi değişiklik yaptığımda bir sorgulama yapıp sagdakiler yeni degerlerini veri tabanından okuyacak..

    bunun içinde sagdaki comboların onchange olaylarına bir javascript fonksiyonu yazmam gerekiyor..

    bu javascript fonksiyonu da sol combobox'tan secilen degeri alıp diğer sayfaya yönlendirmeli..

    ta ki secilen bu değere göre sorgulama yapıp gittiği sayfada sorgulama yapsın ?

    bir türlü gerekli kodu yazamıyorum:

    istediğim kodun mantığını üç aşağı beş yukarı anlatan kod aşağıda











    <HTML>
    <HEAD>
    <title>Select</title>

    </HEAD>
    <BODY>
    <FORM name="soru">
    <p><SELECT NAME="firma" onChange="secim(this.form.firma)">
    <OPTION value="Bilemediniz Yazilim">Microsoft</OPTION>
    <OPTION value="Bilemediniz Yazilim">Borland</OPTION>
    <OPTION value="Bilemediniz Yazilim">Adobe</OPTION></P>
    <OPTION value="Tebrikler Bildiniz">Compaq</OPTION></P><br>
    <input type=button value="zz">
    </FORM>
    <SCRIPT LANGUAGE = "JavaScript1.2">

    function secim(secilen)
    {
    var deneme=secilen.options[secilen.selectedIndex].value
    return deneme

    <?

    header("location:eek:tel.php?yollanacakdeger='deneme'");

    ?>

    }

    </SCRIPT>

    </body>
    </html>
     
  2. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    Tam anlatmak istediğini anlayamadım!
    Formdaki (mesela) firma ismi degistiginde otomatik olarak verilen degerin sayfasınami (urlyi) gönderecek?
    Yoksa submite tıklandığındami gidecek.
    Bu sekilde uye kayıt sayfasında secilen avatar resmini getiren kodlar var.Onları inceledinmi ,onun gibi birşeymi istiyorsun?
     
  3. tamer

    tamer Yeni Üye

    Kayıt:
    2 Şubat 2003
    Mesajlar:
    6
    Beğenilen Mesajlar:
    0
    istediğim şu..
    yahoo mail alırken türkiyeyi seçince (hiçbir submit düğmesine basmadan) otamatikman işlem yapacağı sayfaya gidiyor.

    gelen türkiye bilgisine göre veritabanından iller sorgusu yapılıp geri yollanıyor..

    ve karşınızda demin seçtiğiniz türkiye
    altındaki comboya da dolusmus

    erzincan
    samsun
    sakarya
    istanbul

    iki ana özellik var.. hem php ile veri yolluyoruz hem de combo'nun onchangee olayını kullanıyoruz ? :aglama:
     
  4. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    Burada php ile veri yollama olayı yok!
    ONCHANGE degistiginde ilgili sayfayi yeniden yüklüyor ama yuklenirken default sehirleri degil busefer türkiyenin sehirlerini alıp geliyor
    istedigin buysa yazayım (ama bana sen farklı bir sey istiyorsun gibi geldi)
     
  5. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    (Windows da calisıyor netscape yi kontrol etmedim.)
    Kod:
    
    <?php
    /***************************************************
    *Yazan=turok
    *Bağlı dosyalar:turkey_sehir.txt,russian_sehir.txt 
    *Görev:Onchange degistiginde sayfayı ilgili ulke sehirleriyle yukler
    *Dikkat edilecek noktalar:ilgili dosyalar aynı dizinde olmalı
    *url adresini seninkine göre düzelt
    ***************************************************/
     if(!isset($ulke)){$ulke="turkey";} ?>
    <html>
    <head>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function get(g){
    
    window.location.href="http://localhost/change/index.php?ulke="+g
    }
    //-->
    </SCRIPT>
    </head>
    <body>
    
    <FORM METHOD=POST>
    <select name="ulke" Onchange="get(this.value)">
    <option value="">Ülke sec</option>
    <option value="turkey">Türkiye</option>
    <option value="russian">Rusya</option>
    <option value="amerika">Amerika</option>
    </select><br>
    <select name="sehir">
    <?  include($ulke."_sehir.txt");   ?>
    </select>
    <INPUT TYPE="submit" value="Kaydet">
    </FORM>
    
    </body>
    </html>
    
    Kod:
    /*dosya adı: turkey_sehir.txt*/
    <option value="ankara">Ankara</option>
    <option value="istanbul">İstanbul</option>
    <option value="izmir">İzmir</option>
    <option value="bolu">Bolu</option>
    <option value="canakkale">Çanakkale</option>
    
    Kod:
    /*dosya adı: russian_sehir.txt*/
    <option value="moskova">Moskova</option>
    <option value="peter">Sankt Petersburg</option>
    <option value="arhangelsk">Arhangelsk</option>
    
    İstediğin seyi yapmak için bir fikir verir sanırım.Bu dosyaya turkey_dil,russian_dil gibi eklemeler yaparak aynı anda dili degistirmekde saglanabilir
     
    Son düzenleme yönetici tarafından yapıldı: 3 Şubat 2003
  6. Black_Boyss

    Black_Boyss Daimi Üye

    Kayıt:
    6 Aralık 2002
    Mesajlar:
    1,218
    Beğenilen Mesajlar:
    0
    Meslek:
    bilgisayar Teknikleri /Donanım/Tekniik destek /sis
    Şehir:
    /etc/YOZGAT
    bu sorunun bir benzerini bende sordum yanıt pek iç açıcı olmamıştı burada farklı zannedersem
    :mad:
     
  7. tamer

    tamer Yeni Üye

    Kayıt:
    2 Şubat 2003
    Mesajlar:
    6
    Beğenilen Mesajlar:
    0
    ellerin dert görmesin turok..
    yazdığın kodu inceleyeceğim. ama galiba istediğim tam olarak bu değil..
    soruyu tekrar düzeltip soruyorum




    comboxların oldugu ilk sayfa.php
    bu sayfada yapı şöyle: (otele ait bilgileri veritabanından alıyor)

    Ana Teknik Özellikler .............. >> Teknik Özellikler

    HER TEKNİK ÖZELLİK

    bir ANA TEKNİK ÖZELLİĞİN alt maddesi

    yani: TESİSİN KONUMU adlı Ana teknik özelliğin altında

    -Şehir merkezine yakın
    -Havalimanına yakın
    -Sahil kenarı

    gibi teknik özellikler yer alıyor..

    meseleyi anlayabilesin diye detaylandırıyorum.

    bir otele ait örneğin 10 adet ANA TEKNİK ÖZELLİK var (bunlar veritabanında kayıtlı, artıp azalabilir)

    ve her ANA TEKNİK ÖZELLİK e ait 5 er adet TEKNİK ÖZELLİK var
    (bunlar da veritabanında kayıtlı, artıp azalabilir)

    işte bir otele ait bu verileri aşağıdaki yapıda sayfaya döküyorum


    Ana teknik özellikler Teknik Özellikler
    ________________ ______________

    ana combobox 1 teknik combobox 1

    ana combobox 2 teknik combobox 2.

    ............................................................................
    .
    ana combobox n teknik combobox n




    örneğin acelya oteline, adminler 10 ana Ana Teknik Özelliği değil de beşini eklemişler.. (misal bu otelin öyle bir sürü özelliği yokmuş)

    ve karşılarına da onlarla ilgili teknik özellikleri eklemişler..

    böyle bir durumda yukarıdaki yapının içine veri dolmuş şekli şöyle oluyor


    Ana teknik özellikler Teknik Özellikler
    ________________ ______________

    Tesisin Konumu Göl Kenarı

    Tesisin Çevre Turizmi Yelkenli.

    .................................................................
    .
    Tesisin Çevre Etinlikleri Yayla




    tabi bunların hepsi combox içinde selected olarak ekrana basılan veriler..

    Örneğin Tesisin Konumu adlı comboboxda selected=Tesisin Konumu
    ama onun altında unselected olarak diğer ana teknik özellikler yer alıyor..

    işte mesele burada başlıyor...

    adam değişiklik yapmak istedi: Tesisin Konumu seçili olan combobox a tıkladı ve açılan listeden Tesisin Çevre Etkinlikleri adlı Ana Teknik Özelliği seçti

    Yani Ana Teknik Özelliğin birini değiştirdi..

    İşte bu değiştiyse karşısındaki teknik özellikler combobox'ının içininde Ana Teknik Özelliğe ait Teknik Özellik verileriyle dolması lazım

    İşte bunun için benim yapmam gerekn şu: onchange olayıyla sol combolardan herhangi biri değiştiğinde verileri_isle.php ye yollayıp

    seçtiğim bu comboboxın içindeki Ana Teknik Özellik adlı veriyi bir değişkene atamalı ve sayfaya geri dönüp
    "ey Teknik özellik combox'ı
    senin Ana Teknik Özelliğin değişti..
    seni ona uygun verilerle donatayım" diyerek yeni verileri sag comboboxa yüklemeliyim..



    Sorun bu .. bunu yaparken ihtiyacım olan hususlar ise şunlar ..

    benim, (Ana Teknik Özelliklerin içine basıldığı) bir sürü combobox'ım var sayfada

    Anlamadın mı ?

    Hani , ben otele ait tüm ana teknik özellikleri ve teknik özellikleri sayfa ilk açıldığında comboxların içine birer birer alıyorum demiştim ya..
    işte onu anlatmaya çalışıyordum
    anladın mı ? böyle uzaktan iş olmaz biliyorum o( ama ne yapalım

    Durumu iyice açıklığa kavuşturayım:

    <form name="xx" action=verileri_isle.php>

    <select>

    Ana Teknik ÖZelliklere ait bir c.box Teknik Özelliklere ait bir c.box
    Ana Teknik ÖZelliklere ait bir c.box Teknik Özelliklere ait bir c.box
    Ana Teknik ÖZelliklere ait bir c.box Teknik Özelliklere ait bir c.box
    Ana Teknik ÖZelliklere ait bir c.box Teknik Özelliklere ait bir c.box
    Ana Teknik ÖZelliklere ait bir c.box Teknik Özelliklere ait bir c.box

    </select>

    yukarıdaki Ana Teknik Özellik comboxın herhangi birine tıkladım. içeriğini değiştirdim.


    verileri_al.php ye gittik ?
    haydaa?
    bizi buraya hangi combox yoladı ? id'si nedir onun ?
    ya içeriği ?

    vel hasıl-ı kelam sorunun özeti son 15-20 satırda saklı..


    bu kadar okudun yazdın.. Allah razı olsun. Umarım neticeye götürecek bir cevap daha alabilirim.
     
  8. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    Yapmak istediğin seyi 2 türlü yapabilirsin
    Birincisi yukardaki gibi
    Sayfa ilk yuklendiginde default olarak en çok kullanılacak ana teknik ozelligi ve onun alt teknik ozelliklerini yuklersin
    Ama o ana teknik ozellik degistiginde (yukardaki fonksiyona yeni secilen ana teknik ozelligin idsini gönderip) secilen ana teknik ozelligin alt teknik ozelliklerini alıp getirebilirsin.
    Mantık yine aynı ama farklı .txt dosyalarını include edecegine
    veritabanından o ana ozelliklerin alt teknik ozelliklerini alıp gelmesini soylemen gerekli.
    Burda dügüm noktası tabloları doğru oluşturup oluşturmamanla ilgili.
    Yani hangi ana detaylar hangi alt detayları barındırıyor.
    Bunu çözdükten sonra mantık aynı.

    mesela otel detayı
    <option value="7yildiz">Süper Lüks</option>
    <option value="5yildiz">Lüks</option>
    <option value="4yildiz">Normal</option>

    burda 5 yıldızliyi default olarak yukleyip alt teknik detaylarda

    <option value="deniz">Deniz Kenarı</option>
    <option value="gol">Göl Kenarı</option>
    <option value="yayla">Yayla</option>
    <option value="dag">Dağ</option>
    gibi bir combo varsa ve müsteri 7 yildizi sectiginde Dubaideki çöl kenarındaki otelin detaylarını alıp gelecekse sayfa phpye yeniden sorgu yaptiginda kendisine gelen 7yildiz degerini veritabanındaki tabloda sorgulamalı ve onun detaylarını getirmeli.
    Tabloyu dogru yapılandırdıysan bir sorun yok burda.

    2 yoldan bahsetmistim.
    Eger teknik ozellikler çok fazla değilse
    butun teknik ozellikleri sayfa ilk yuklendiginde javascript içerisine gizleyebilir ve teknik ozellik değiştiginde sayfa yeniden yuklenmeden ilgili alt teknik ozellikleri comboboxlarda degistirtebilirsin.
    Ama bu daha karısık bir iş olacak senin için.

    teknik ozelliklerden sonra bir alt teknik ozellik daha varsa ve onlarda teknik ozellik degistiginde tekrar degismesi gerekiyorsa
    aynı sekilde ama farklı isimde bir JS fonksiyonu daha tanımlayıp
    o bilgilerede ulasabilirsin. Burada dikkat edecegin (urlden pek farkı yok)
    function ana(g){
    window.location.href="http://www.domainim.com/ilgilisayfam.php?ana_ozellik="+g

    }
    function alt(g){
    window.location.href="http://www.domainim.com/ilgilisayfam.php?alt_ozellik="+g

    }

    seklinde sorgunun nereden geldigini ogrenmen.
    Tablolara dikkat et olay orda çözülür.
    Kolay gelsin
     
  9. tamer

    tamer Yeni Üye

    Kayıt:
    2 Şubat 2003
    Mesajlar:
    6
    Beğenilen Mesajlar:
    0
    turok.. ellerine sağlık abicim..

    benim sayfaya txt ile include etme yahut javascriptle gömme durumum yok.. Çünkü iş karışık.. Ben teknik özellikler combobox'ına verileri doldururken koca koca sql cümlecikleriyle dolduruyorum.. acaip sorgular yapılıyor.

    veritabanını ben olustrumadım.
    mazisi 5 yıl.
    ve veri tabanı iyi hazırlanmış..

    benim basitce istedigim su. kurbanın olam o) hele şunu bi söyle..

    form nesnesinin icinde 5 tane combobox var..
    ve bunun adıda dizi şeklinde atanmış.
    yani

    <form name="combolar" method="post" action="verileri_al.php">

    select1 id=1

    <option>xxx</option>
    <option>xxx</option>

    select2 id=2
    <option>xxx</option>
    <option>xxx</option>

    select3 id=3
    <option>xxx</option>
    <option>xxx</option>

    select4 id=4
    <option>xxx</option>
    <option>xxx</option>

    select5 id=5
    <option>xxx</option>
    <option>xxx</option>

    </form>

    selectlerin onchangelerine verileri_al.php ye git dedim ya
    (postla da verileri yollamış olduk)

    select1 mi 2 mi 3 mü bizi buraya gönderen? nasıl bileceğim. veya select'in id sini nasıl alacağım ..
    sorunun temeli bu ???
     
  10. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    :)
    Veriyi almak basit.Yanlız burda formdaki select degistigi takdirde
    onchange ile sayfayı yuklediginde bilgiler getler gider
    Submite tıkladıgında ise form baslıgında ayarladıgın sekilde postla
    2 . olarak select id=4 gibi degil
    selectleri soyle yazmalısın mesela

    <select name="select1" Onchange="yukle(this.name,this.value)">
    /*select1 yerine 1 yazman burada farketmez ancak postla gelen degerler içinde php de anahtarin ilk karakteri rakam olamayacagı için hata verecektir. anlatmak istedigim name= kullanman gerekli */
    optionlarda eger görünürde kelime kullanıyorsan ama aynı veriyi kelimeyle veritabanında bulman zor olursa id kullan

    <option value="1">Türkiye</option>
    <option value="2">Rusya</option>

    gibi.Javascriptide asagidaki gibi yazdiginda sayfa onchange ile yeniden yuklendiginde hangi verinin nereden geldigini görebilirsin

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function yukle(s,g){

    window.location.href="http://domainim.com/verileri_al.php?secim="+s+"&id="+g
    }
    //-->
    </SCRIPT>

    Simdi gelen veriye nasil erisecegini biliyorsundur sanırım ama kısacik bahsedeyim.
    Veri onchangeden geliyorsa get degerlerini kontrolden gecirip veriye erisebilirsin
    yada
    asagıdaki gibi secim degeri doluysa hangi selectin degistirildigini
    $secim degiskeninin degerini kontrol ederek ogrenebilirsin
    bunu ogrendikten sonra $id degiskeni ile de ilgili tablodan sorgulamanı yapabilirsin.

    if(isset($secim)){

    if($secim=="1"){
    /*select 1 den gelmisiz*/
    $id degiskenmimizde elimizde simdi burda sql sorgulamamızı yapacagız/*
    }
    elseif($secim=="2"){
    /*select 2 den gelmisiz*/
    $id degiskenmimizde elimizde simdi burda sql sorgulamamızı yapacagız/*
    }


    /*burdaki gibi kontrol edip devamını da yazıp kontrol edebilirsin.daha baska çözüm yollarıda var ama en basiti bu.

    Umarım yeterli olur sorununu çözersin.Kolay gelsin
    */
    }
     
    Son düzenleme yönetici tarafından yapıldı: 4 Şubat 2003
  11. tamer

    tamer Yeni Üye

    Kayıt:
    2 Şubat 2003
    Mesajlar:
    6
    Beğenilen Mesajlar:
    0
    abicim.

    Allah razı olsun. Problemi çözdüm.
    Senin işlerin de rastgider inşallah..
     
  12. hgunindi

    hgunindi Yeni Üye

    Kayıt:
    2 Mayıs 2007
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    bana yardım edecek arkadaş varmı?

    <BODY>

    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
    <!--

    // Initialize class for Type and Style

    function Type(id, type){

    this.id = id;

    this.type = type;

    }

    function Style(id, id_type, style){

    this.id = id;

    this.id_type = id_type;

    this.style = style;

    }

    // Initialize Array's Data for Type and Style

    TypeArray = new Array(

    new Type(1, "ali"),

    new Type(2, "hacı"),

    new Type(5, "mehmet")

    );



    StyleArray = new Array(

    new Style(4, 1, "ali"),

    new Style(7, 1, "ali2"),

    new Style(41, 2, "hacı"),

    new Style(21, 2, "hacı1"),

    new Style(17, 2, "hacı2"),

    new Style(30, 5, "mehmet"),

    new Style(27, 5, "mehmet1"),

    new Style(31, 5, "mehmet2")

    );


    function init(sel_type, sel_style){

    document.product.id_type.options[0] = new Option("[ seçiniz ]");

    for(i = 1; i <= TypeArray.length; i++){

    document.product.id_type.options = new Option(TypeArray[i-1].type, TypeArray[i-1].id);

    if(TypeArray[i-1].id == sel_type)

    document.product.id_type.options.selected = true;

    }

    OnChange(sel_style);



    }

    function OnChange(sel_style){

    sel_type_index = document.product.id_type.selectedIndex;

    sel_type_value = parseInt(document.product.id_type[sel_type_index].value);


    for(i = document.product.id_style.length - 1; i > 0; i--)

    document.product.id_style.options = null;


    j=1;

    for(i = 1; i <= StyleArray.length; i++){

    if(StyleArray[i-1].id_type == sel_type_value){

    document.product.id_style.options[j] = new Option(StyleArray[i-1].style, StyleArray[i-1].id);

    if(StyleArray[i-1].id == sel_style)
    document.product.id_style.options[j].selected = true;

    j++;

    }

    }

    }

    //-->

    </SCRIPT>

    <form name="product">

    <select name="id_type" size="1" style="width: 150px;" onChange="OnChange()"></select>

    <br><select name="id_style" size="1" style="width: 150px;"></select>

    <br> <select name="" size="1" style="width: 150px;"></select>

    <br><select name="" size="1" style="width: 150px;"></select><br><select name="" size="1" style="width: 150px;"></select><br><select name="" size="1" style="width: 150px;"></select></form>

    <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">

    <!--

    //init(5, 31); // Initialize comboboxes by selected sel_type and sel_style

    init(); // Default initialize comboboxes for Type and Style

    //-->

    </SCRIPT>




    bu comboboxlar 1. combobok sa bağlı 5 combobox olacak ilk ikisi çalışıyor ama son 4 ü nü birinciye baglayamadım yardım ederseniz cok sevinirim