Her güvenilir PHP damla aşağı olan

5 Cevap php

Ben bu sorunları var. html ve php kullanarak.

Ben bunu nasıl biliyor olabilir. Ben aşağı 2 düşüş var, örneğin A ve B Bırak aşağı B A. Örnek, bir dBASE adı verilecek bu seçenekleri var (bu ile hiçbir prob, tq) (Jack, Carol), ve B aşağı düşüşe bağlı olduğunu wil seçenekleri bağlıdır var A: if select Jack (T1, T2, T3), select carol (T1, T2, T3, T4, T5).

İşte örnek arayüzü vardır.

alt text

Birisi bu konuda bana yardımcı olabilir?

teşekkür ederim.

5 Cevap

U Bu durumda Ajax ile çalışmak gerekir. Bir sütunun herhangi Seçme sayfa yenileme olmadan u B sütun değeri karşılık verecektir. Örneğin

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

Javascript Yukarıda gördüğünüz gibi, ülkenin onChage durumunda getState açılan () fonksiyonu seçenekleri Devletin kodunun getState () fonksiyonu bakalım, açılan değerlerini değiştirmek hangi denir.

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

Ajax getirilen devletin aşağı açılan seçenekleri doldurmak PHP dosyası findState.php, kod aşağıda verilmiştir

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

Yukarıdaki devlet açılan yılında getCity () işlevi CountryID ve stateId parametresi ile onChage olay denir, şimdi getCity kodunda bakalım () fonksiyonu

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

Yukarıdaki ajax fonksiyonu, findcity.php denir ve bu PHP dosyası olsun yöntemi sağlanan parametreler ülke ve durumuna göre şehir açılan doldurmak. Şimdi findcity.php koduna bakalım,

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

Ve hepsi bu, Ajax ve PHP kullanarak şehir, ülke ve devlet listede aşağı üçlü açılan doldurulur.

Sen Ajax Açılır B iç HTML doldurmak için ayarlanmış olduğunu Açılır A onClick bağlı gerekecektir

Ajax hemen böylece herkes kullanımı ajax demek oluyor "cool" bir şeydir. Ben ajax dont'LÜZUM söylemek için gidiyorum. Alternatif bir ikinci devre dışı bırakmak için bir form olabilir. İlk seçme teslim edildiğinde / QueryString örn şey ekleyerek, sayfaların yeniden değişti ? Bir = jack ve ikinci seçeneğini doğru değerlerle doldurulur.

Ajax youd daha da javascript kodu yazmak zorunda Şimdi ne zaman? Bir = girişine bağlayan tüm sayfalar otomatik olarak, ikinci seçeneğini dolduracaktır.

Ben im sadece bir farklı, büyük ihtimalle daha kolay bir alternatif vererek, ajax kullanmak yok demiyorum.

Gerçekten kullanıcı deneyimi olur zaman sadece ajax kullanmak.

Kesinlikle jQuery ne javascript kullanmak istemiyorsanız bunu yapmanın bir yolu:

<form action="?step=2" method="post">
<select name="name">
    <option if($_POST['name'] == 'Jack'){echo ' selected="selected" ';}>Jack</option>
    <optionif($_POST['name'] == 'Carol'){echo ' selected="selected" ';}>Carol</option>
</select>

<?php if($_GET['step'] == 2){?>
<select name="b">
<option>1</option>
<option>2</option>
<option>3</option>
<?php if($_POST['name'] == 'Carol'){?>
<option>4</option>
<option>5</option>
<?php } ?>
</select>
</form>
<?php } ?>

<input type="submit" name="next" value="Next" />

Sen adımlar form / sayfa breack zorunda kalacaktır. Ve tüm form sayfaları yeniden olarak yeniden doldurulması gerekiyor.

Bu sizin için yardım olabilir umuyoruz

Ben bu yazının başarmak için çalışıyoruz ne olduğunu açıklıyor düşünüyorum: Dependable Dropdown Menus with jQuery and PHP