Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP thả xuống mà mỗi cái đều đáng tin cậy

Bạn cần làm việc với Ajax Trong trường hợp này. Không làm mới trang Việc chọn bất kỳ cột A nào sẽ cung cấp cho u Giá trị cột B tương ứng. Ví dụ

<form method="post" name="form1">
 <table border="0" cellpadding="0" cellspacing="0" width="60%"><tbody>
  <tr>
   <td width="150">Country</td>
   <td width="150"><select style="background-color: #ffffa0" name="country" onchange="getState(this.value)"><option>Select Country</option><option value="1">USA</option><option value="2">Canada</option>       </select></td>
  </tr>
 <tr>
  <td>State</td>
  <td>
  <p id="statediv">
  <select style="background-color: #ffffa0" name="state"><option>Select Country First</option>       </select></td>
</tr>
<tr>
  <td>City</td>
  <td>
  <p id="citydiv">
  <select style="background-color: #ffffa0" name="city"><option>Select State First</option>       </select></td>
</tr>
</tbody></table>
</form>

Như bạn có thể thấy ở trên, trong sự kiện onChage của quốc gia thả xuống hàm getState () của javascript được gọi để thay đổi các giá trị tùy chọn mà trạng thái thả xuống, hãy xem mã của hàm getState ().

function getState(countryId)
{
   var strURL="findState.php?country="+countryId;
   var req = getXMLHTTP();
   if (req)
   {
     req.onreadystatechange = function()
     {
      if (req.readyState == 4)
      {
     // only if "OK"
     if (req.status == 200)
         {
        document.getElementById('statediv').innerHTML=req.responseText;
     } else {
       alert("There was a problem while using XMLHTTP:\n" + req.statusText);
     }
       }
      }
   req.open("GET", strURL, true);
   req.send(null);
   }
}

Mã của tệp PHP findState.php, điền các tùy chọn trong menu thả xuống của trạng thái được tìm nạp từ Ajax, được đưa ra bên dưới

<? $country=intval($_GET['country']);
$link = mysql_connect('localhost', 'root', ''); //changet the configuration in required
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_ajax');
$query="SELECT id,statename FROM state WHERE countryid='$country'";
$result=mysql_query($query);

?>
<select name="state" onchange="getCity(<?=$country?>,this.value)">
 <option>Select State</option>
  <? while($row=mysql_fetch_array($result)) { ?>
    <option value=<?=$row['id']?>><?=$row['statename']?></option>
  <? } ?>
</select>

Trong menu thả xuống trạng thái ở trên, hàm getCity () được gọi trong sự kiện onChage với tham số countryId và stateId, bây giờ chúng ta hãy xem mã của hàm getCity ()

function getCity(countryId,stateId)
{
  var strURL="findCity.php?country="+countryId+"&state="+stateId;
  var req = getXMLHTTP();
  if (req)
  {
    req.onreadystatechange = function()
    {
      if (req.readyState == 4) // only if "OK"
      {
        if (req.status == 200)
        {
          document.getElementById('citydiv').innerHTML=req.responseText;
        } else {
          alert("There was a problem while using XMLHTTP:\n" + req.statusText);
        }
      }
    }
    req.open("GET", strURL, true);
    req.send(null);
  }
}

Trong hàm ajax ở trên, findcity.php được gọi và tệp PHP này điền vào menu thả xuống của thành phố theo quốc gia và trạng thái được cung cấp từ phương thức get. Bây giờ hãy xem mã của findcity.php,

<?php $countryId=intval($_GET['country']);
$stateId=intval($_GET['state']);
$link = mysql_connect('localhost', 'root', ''); //changet the configuration in required
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('db_ajax');
$query="SELECT id,city FROM city WHERE countryid='$countryId' AND stateid='$stateId'";
$result=mysql_query($query);

?>
<select name="city">
 <option>Select City</option>
  <?php while($row=mysql_fetch_array($result)) { ?>
 <option value><?=$row['city']?></option>
<?php } ?>
</select>

Và đó là tất cả, danh sách thả xuống ba thành phố, quốc gia và tiểu bang sử dụng Ajax và PHP sẽ được điền.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL CURRENT_TIMESTAMP dưới dạng DEFAULT

  2. Sử dụng lệnh IN để tìm kiếm với một câu lệnh đã chuẩn bị sẵn

  3. Một tập lệnh để thay đổi tất cả các bảng và trường thành đối chiếu utf-8-bin trong MYSQL

  4. MySQL loại bỏ một số khóa ngoại

  5. Cam kết và giao dịch MySQL