2014-04-23 38 views
0

從第一個下拉列表中選擇一個選項後,將根據選定的選項顯示另一個下拉列表。當從第二個選項中選擇一個選項時,選定的值將被髮送到位於頁面頂部隱藏的輸入元素。它還調用函數「bolumGonder」,它使用GET方法向同一頁面提交包含輸入元素的表單。然後根據GET變量從數據庫中檢索一些數據。從MySQL將現有div移至另一個帶有Javascript的區域

<?php 
##Database Bağlantısı## 
$host = 'host'; 
$user = 'username'; 
$pass = 'password'; 
$db = 'databasename'; 

$baglan = mysql_connect($host, $user, $pass); 
mysql_select_db($db); 

mysql_query("SET NAMES 'utf8' "); 
mysql_query("SET CHARACTER SET utf8"); 
mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci' "); 


## Her Ders İçin Ayrı Tablo Oluştur ##    

function bolum($degisken) { 
    # Ders Kodlarını Al # # Gets Class Name From Another Website, Asign them into an array ## 
    $ch = curl_init("someURL"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $cl = curl_exec($ch); 
    $dom = new DOMDocument(); 
    @$dom->loadHTML($cl); 
    $xpath = new DOMXpath($dom); 

    $derskodlari = $xpath->query("//option[position() >1]"); 
    $todbderskodlariarr = array(); 
    foreach ($derskodlari as $derskodu) { 
     $todbderskodlariarr[] = $derskodu; 
    } 

    $todbderskodu = array(); 

    foreach ($todbderskodlariarr as $todbderskoduarr) { 
     $todbderskodu[] = $todbderskoduarr->nodeValue; 
    } 

    ## This is just an exception. ## 
    $todbderskodu[81] = "MODD"; 

    for ($a = 0; $a < count($todbderskodu); $a++) { 
     @$todbderskodu[$a] = mysql_query("SELECt crnler, derskodu, gun, bina, dersadi FROM $todbderskodu[$a] WHERE dersialabilen LIKE '%" . $bolum . "%'"); 
    } 

    $a = 0; 
    while ($a < count($todbderskodu)) { 
     while ($row = mysql_fetch_array($todbderskodu[$a], MYSQL_NUM)) { 
      $class = substr($row[1], 0, 3); 
      echo '<div class="' . $class . '" id="' . $row[0] . '">' . $row[4] . $row[0] . '&nbsp; |' . $row[2] . '</div>'; 
     } 
     echo '<br>'; 
     $a = $a + 1; 
    } 
} 
?> 

PHP

<?php 
session_start(); 
if (isset($_GET['bolumtani']) && !empty($_GET['bolumtani'])) { 
    include_once 'alinabilendersler.php'; 
} 
?> 

HTML 

<script>  
    function bolumGonder() { 
     var seciliBolum = $(".insaat").val(); 
     if (seciliBolum.length > 0) { 
      $("#bolumtani").val(seciliBolum); 
      document.bolumtaniform.submit(); 
     }  
    } 
</script> 
<form name="bolumtaniform" action="program.php" method="GET"> 
    <input name="bolumtani" id="bolumtani" type="text" style="display:none" /> 
</form> 

<div id="orta_div"> 
    <select class="fakulte_sec" onclick = "bolumAc()"> 
     <option selected>Fakülte</option> 
     <option value="insaat">İnşaat Fakültesi</option> 
     <option value="mimarlik">Mimarlık Fakültesi</option> 
     <option>Makina Fakültesi</option> 
     <option>Uçak ve Uzay Bilimleri Fakültesi</option> 
    </select> 

    <select class="insaat" style="display:none" onchange="bolumGonder()"> 
     <option value="" selected>Bölüm</option> 
     <option value="ins">İnşaat Mühendisliği %30</option> 
     <option value="inse">İnşaat Mühendisliği %100</option> 
     <option>Çevre Mühendisliği %30</option> 
     <option>Çevre Mühendisliği %100</option> 
    </select> 

    <select class="mimarlik" style="display:none"> 
     <option>Mimarlık %30</option> 
     <option>İnşaat Mühendisliği %100</option> 
     <option>Çevre Mühendisliği %30</option> 
     <option>Çevre Mühendisliği %100</option> 
    </select> 
    <div class="uygun_dersler_ana_div" style="width:100%; color: white; height: 1500px;position: absolute ;overflow: hidden"><?php if (isset($_GET['bolumtani']) && !empty($_GET['bolumtani'])) {$sonuc = bolum($_GET['bolumtani']);} else {}?></div> 

</div> 

剛開數據高達現在一切都運行完美。腳本創建具有class AKM,ALM,ATA,UCK等的div。我想將所有具有相同類的div放入classname_main_div。我怎樣才能做到這一點?

+0

請擴展您對'同類'的含義嗎? – PHearst

+0

克隆這些div並將它們附加到classname_main_div,然後將它們從DOM的原始位置中刪除。 –

回答

1

使用類環的div和附加到其他分區,如:

$(".looped-divs").appendTo(".container-div"); 

希望幫助 喝彩!

PD:請記住GET變量以避免SQL注入

+0

非常感謝。但還有一個問題。我用PHP for循環創建了114個div。爲了將div移動到另一個現有div,我應該使用Javascript。但是,由於PHP,我從另一個網站獲得了divs類的名字。但是,正如我知道我不能這樣做與Js。我是否必須將所有114個div類的名稱逐個寫入Js數組然後進行循環?或者有一些Js方法可以用來獲取PHP數組的項目? 我希望我能解釋我的問題。 – Zeki

+0

它取消了類的名稱...如果你有tottaly隨機名稱,你將不得不使用容器div來選擇它內部的項目,如下所示: 假設循環div包含你whant的div列表移動 '$(「。looped-divs div」)' 也可以使用「起始」選擇器。 只有當div類以「x」值開頭時: '$(「div [class^='item - ']」)' 那裏您創建了所有具有以單詞「item」開頭的類的div。 有很多方法可以做到這一點。 我建議你使用瀏覽器開發者控制檯來查看你是否選擇了你想要的所有div。 歡呼! –

相關問題