2013-05-12 185 views
0

我是PHP新手。我有一个数据库,就像保存箱中的附件一样。它有4个列与PHP和mysql数据库相互关联的下拉列表

  1. 司名称
  2. 区名称
  3. 坦纳名称
  4. 联盟名称

这些都是我们国家的行政单元。我想创建四个下拉列表/组合框,这些将从数据库中填充。有一件事是必须相互关联的。如果有人选择分区名称,则只显示属于该分区的分区名称。同样,如果选择的区域只会在第三个下拉列表中显示Thana名称。同样,第四个下拉列表将被填满。

数据库模式:

https://dl.dropboxusercontent.com/u/81313785/database_schema.xls

这里是我使用的代码:

<?php 
$con = pg_connect("data connection"); 
if (!$con) 
    { 
    die("Could not connect: " . pg_last_error()); 
    } 

    $locfindsql = "SELECT unionname, thananame, distname, divname from union_bgd"; 

//echo $sql; 
$result = pg_query($con, $locfindsql); 

$row = array(); 
?> 
<div id="leftpanel" style="position: absolute; top: 12%; left: 1%; bottom: 2%; width: 20%; height: 86%; box-shadow: 4px 4px 4px #888888; 
     background: #5e5e5c; z-index:-888;"> 

    <div id="findPlace" style= "position: absolute; left: 8px; top: 8px; right: 8px; height: 275px; background: rgb(245, 246, 246); border-radius: 4px;" > 
     <h4>Find a location</h4> 
     Division:</br> 
     <select name="Division"> 
      <? 
      while($row = pg_fetch_array($result)) 
       { 
       echo "<option>$row[divname]</option>"; 
       } 
      ?> 
     </select></br> 
     District:</br> 
     <select name="District"> 
      <? 
      while($row = pg_fetch_array($result)) 
       { 
       echo "<option>$row[distname]</option>"; 
       } 
      ?> 
     </select></br> 
     Upazila:</br> 
     <select name="Union"> 
      <? 
      while($row = pg_fetch_array($result)) 
       { 
       echo "<option>$row[thananame]</option>"; 
       } 
      ?> 
     </select></br> 
     Union:</br> 
     <select name="Union"> 
      <? 
      while($row = pg_fetch_array($result)) 
       { 
       echo "<option>$row[unionname]</option>"; 
       } 
      ?> 
     </select></br> 
      <? 
      pg_close($con); 
      ?> 

     <button id="placebutton" style="font-size: small; font-family: Arial;"><a href="javascript:onPlaceBtnClick('findPlaceButton')">Find the Place</a></button> 
    </div> 

    </div> 
+0

究竟你的问题是什么?你有什么问题?你有没有尝试过什么? – peterm 2013-05-12 06:41:03

回答

2

我不确定这是否是ki nd你正在谈论的事情,但我希望它会对你有所帮助。这是代码从数据库填充下拉列表。这不是生产代码,但它显示了将数据库结果提供给表单的一种方法。如果您完全不熟悉PHP并想快速学习基础知识,则可以尝试w3schools.com,看看它是否对您有所帮助。还有在php.net的文档,您可以深入PHP的深处。

// GET LIST AND DISPLAY IN FORM 
    $link = mysqli_connect($db_connection, $db_user, $db_passwd, $db_name); 
    // check connection 
    if (mysqli_connect_errno()) 
    { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 
    // else echo "<p>Connected to database.</p>"; 
    // Get value for new student id 
    $query = "SELECT custid, firstname, lastname FROM customer ORDER BY lastname, firstname ASC"; 
    if($result = mysqli_query($link, $query)) 
    { 
     echo '<p><form action="./index.php" method="post">'; 
     // 
     //SELECT THE CUSTOMER MAKING THE PAYMENT 
     echo'<select name="loadcustomer">'; 
     echo'<option value="" selected="selected" disabled="disabled">Select a Customer</option>'; 
     while ($idresult = mysqli_fetch_row($result)) 
     { 
      $custid = $idresult[0]; 
      $firstname = $idresult[1]; 
      $lastname = $idresult[2]; 

      echo'<option value="' . $custid . '">' . $firstname . '&nbsp;' . $lastname . '</option>'; 
     } 
     echo'</select></p><p>'; 
     // 
     // SELECT THE NUMBER OF HOURS TO BE PAID 
     echo'<select name="numberofhours">'; 
     echo'<option value="" selected="selected" disabled="disabled">Select # of Hours</option>'; 
     echo'<option value="1">1</option>'; 
     echo'<option value="2">2</option>'; 
     echo'<option value="3">3</option>'; 
     echo'<option value="4">4</option>'; 
     echo'<option value="5">5</option>'; 
     echo'<option value="6">6</option>'; 
     echo'<option value="7">7</option>'; 
     echo'<option value="8">8</option>'; 
     echo'</select></p><p>'; 
     echo'<input type="submit" value="Load Customer" />'; 
     echo'</form></p>'; 
    } 
    mysqli_free_result($result); 
    // close connection 
    mysqli_close($link); 
+0

我已更新我的代码。你能看看这一刻吗? – 2013-05-12 10:50:11

1

如果我正确地理解下面的代码将正常工作,只是做MySQL的设置正确

 <?php 
    $con=mysqli_connect("your host","mysql_user","user_password","your_db"); 
    // Check connection 
    if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

    $result = mysqli_query($con,"SELECT destrict, thana FROM your table"); 
    ?> 
    <select> 
    <? 
    while($row = mysqli_fetch_array($result)) 
     { 
     echo "<option>$row[destrict]</option>"; 

     } 
    ?> 
    </select> 
    <? 
    mysqli_close($con); 
    ?> 
+0

我已更新我的代码。你能看看这一刻吗? – 2013-05-12 10:48:37

+0

请将所有三种不同的while循环像$ row,$ row1,$ row2 ....... – 2013-05-12 12:25:58