sql >> Database teknologi >  >> RDS >> Mysql

PHP drop-down, som hver især er pålidelige

Du skal arbejde med Ajax i dette tilfælde. Uden at opdatere siden Hvis du vælger en af ​​A-kolonnen, får du den tilsvarende B-kolonneværdi. For eksempel

<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>
 

Som du kan se ovenfor, i onCage-begivenheden i land-rullemenuen kaldes getState()-funktionen i javascriptet, hvilket ændrer indstillingsværdierne, som State drop-down, lad os se på koden, getState()-funktionen.

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);
   }
}
 

Koden for PHP-filen findState.php, som udfylder valgmulighederne i rullemenuen for den tilstand, der hentes fra Ajax , er angivet nedenfor

<? $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>

I ovenstående tilstandsrullemenu kaldes getCity()-funktionen i onChage-hændelse med countryId og stateId-parameteren, lad os nu se på koden for getCity()-funktionen

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);
  }
}
 

I ovenstående ajax-funktion kaldes findcity.php, og denne PHP-fil udfylder by dropdown-menuen i henhold til de angivne parametre land og stat fra get-metoden. Lad os nu se på koden for 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>
 

Og det er alt, den tredobbelte rulleliste over by, land og stat, der bruger Ajax og PHP, vil blive udfyldt.



  1. Tabel [tablename] er ikke låst

  2. Skal jeg køre mysql på google cloud run? (eller enhver database)

  3. Hvordan kalder man Oracle Function i Python?

  4. Sådan får du værdier for hver dag i en måned