2013-02-28 72 views
1

我正在創建三個下拉菜單它工作得很好,但我希望第二個下拉列表出現在選擇的第一個和第三個選擇第二個如何做到這一點,如果任何人可以指導我或給我一個例子,我將不勝感激php + populate下拉菜單上的另一個選擇

PS:第二個下拉列表或表中有第一個外鍵,所以在這裏我想工作根據第一個的選擇填充第二個。

fun.inc.php

<?php 
require_once('db.inc.php'); 

function connect(){ 
    mysql_connect(DB_Host, DB_User ,DB_Pass)or die("could not connect to the database" .mysql_error()); 

    mysql_select_db(DB_Name)or die("could not select database"); 

} 
    function close(){ 

    mysql_close(); 

    } 

    function countryQuery(){ 

    $countryData = mysql_query("SELECT * FROM country"); 

    while($record = mysql_fetch_array($countryData)){ 

    echo'<option value="' . $record['country_name'] . '">' . $record['country_name'] . '</option>'; 

    } 

} 

function specializationQuery(){ 

$specData = mysql_query("SELECT * FROM specialization"); 

    while($recordJob = mysql_fetch_array($specData)){ 

    echo'<option value="' . $recordJob['specialization_name'] . '">' . $recordJob['specialization_name'] . '</option>'; 

    } 


} 

function governorateQuery(){ 

$goverData = mysql_query("SELECT * FROM governorate"); 

    while($recordGover = mysql_fetch_array($goverData)){ 

    echo'<option value="' . $recordGover['governorate_name'] . '">' . $recordGover['governorate_name'] . '</option>'; 

    } 


} 

?> 

的index.php

<?php 
    require_once('func.inc.php'); 
    connect(); 


?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>testDroplistdown</title> 
</head> 

<body> 
<p align="center"> 
<select name="dropdown"> 
    <?php countryQuery(); ?> 
</select> 
</p> 
<br /> 
<br /> 

<p align="center"> 
<select name="dropdown2"> 
    <?php governorateQuery(); ?> 
</select> 
</p> 

<p align="left"> 
<select name="dropdown3"> 
    <?php specializationQuery(); ?> 
</select> 
    <?php close(); ?> 
</p> 


</body> 
</html> 
+1

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 – 2013-02-28 07:17:52

+0

你也可以使用連接....而不是寫多個查詢 – 2013-02-28 07:19:21

回答

0

你不能做到這一點與PHP只是,你需要使用AJAX。

Ajax是一種使用JavaScript和PHP根據用戶輸入加載新結果的技術。 假設你選擇一個國家,你會從該國的所有城市得到一個新的選擇框。

你必須創建一個事件處理程序的第一個選擇框中:

 <select name="dropdown" onchange="loadNewSelectBox(this.value)"> 
       // values 
    </select> 

的loadNewSelectBox是,將發佈新的XMLHTTP請求到PHP文件服務器上的值的函數您的選擇框。然後你會迴應該PHP文件(json,xml,html ..)中的數據和響應。您的回覆(對於初學者)可能是包含新選擇框的html。然後你會將該響應附加到div或段落。

這類似於你的任務的例子:http://www.w3schools.com/php/php_ajax_database.asp

這是一個很好的學習來源。 https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

1

確保你永遠留下你的PHP結束標記和你的HTML頭的乞討後,它可以特羅一些討厭的錯誤

這個腳本應該工作

<?php 
    require_once('func.inc.php'); 
    connect(); 
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>testDroplistdown</title> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    </head> 

    <body> 
    <p align="center"> 
    <div id="dropdown1div"><select id="dropdown1" name="dropdown"> 
    <?php countryQuery(); ?> 
    </select></div> 
    </p> 
    <br /> 
    <br /> 

    <p align="center"> 
    <div id="dropdown2div"></div> 
    </p> 

    <p align="left"> 
    <div id="dropdown3div"></div> 

    <script type="text/javascript"> 
    $("#dropdown").change(function() { 
    val = $(this).val(); 
    var html = $.ajax({ 
    url: "dropdown_select.php?dropdown=2&val="+val+"", 
    async: true, 
    success: function(data) { 
    $('#dropdown2div').html(data); 
    }////////////function html//////// 
    })/////////function ajax////////// 
    }); 
    </script> 

    <?php close(); ?> 
    </p> 


    </body> 
    </html> 

dropdown_select.php

<?php 
    require_once('func.inc.php'); 
    connect(); 
    if(isset($_GET['val'])){ 
    $val = $_GET['val']; 
    $dropdown = $_GET['dropdown']; 
    } 


    if($dropdown == '2'){ 
    echo '<select id="dropdown2" name="dropdown2">'; 
    governorateQuery(); 
    echo '</select>'; 
    ?> 
    <script type="text/javascript"> 
    $("#dropdown2").change(function() { 
    val = $(this).val(); 
    var html = $.ajax({ 
    url: "dropdown_select.php?dropdown=3&val="+val+"", 
    async: true, 
    success: function(data) { 
    $('#dropdown3div').html(data); 
    }////////////function html//////// 
    })/////////function ajax////////// 
    }); 
    </script> 

     } // end if statement 



    if($dropdown == '3'){ 
    echo '<select id="dropdown3" name="dropdown3">'; 
    specializationQuery();  
    echo '</select>'; 

     } // end if statement 
     close(); 
     ?> 
相關問題