Değer alınıyor DropDown arasında (öğe görüntüleyebilirsiniz değil)

2 Cevap php

AJAX kullanarak dinamik açıla dolduruyorum. DropDown kod şöyle görünür:

<select class="element select medium" id="inDistrict" name="inDistrict" onclick="MakeRequest('divDistrict', 'inDistrict', 'SELECT * FROM districtmaster');" onchange="alert(document.getElementByID('inDistrict').value);"> 
    <option value="Select" selected="Select">Select</option>
</select>

AJAX isteği üzerine yürütür başka bir dosya aşağıdaki kodu içerir:

<?php
    require("dbconnection.php");
    require("dbaccess.php");

    $dropdownControlName = $_GET['DropDownControlName'];
    $query = $_GET['SqlQuery'];
    dbconnection::OpenConnection();
    $result = dbaccess::GetRows($query);
?>
<select name="<?php echo $dropdownControlName; ?>">
<option>Select from the list</option>
<?php while($row=mysql_fetch_array($result))
{ ?>
    <option value="<?= $row[0] ?>"><?= $row[1] ?></option>
<?php } ?>
</select>

Her şey gayet iyi çalışıyor ve dropdowns Ayrıca ben Seçeneği değerini almak için nasıl aşağıdaki değilim dışında, dolu olsun. Yukarıdaki kodda ben ekran öğesi olarak [0] [1] değer ve satır gibi satır kullanıyorum görebilirsiniz. Ben bir kullanıcı herhangi bir satır [1] ekran öğesi seçer her satır [0] değerini almak istiyorum.

Yukarıdaki ilk kodunda, ben onchange olay ekledi görmek ve sadece bir uyarı kutusu yoktur. Ama yürütme değildir. [0] değeri satır almak ve neden Onchange olay ateş değil nasıl?

2 Cevap

onchange seçilen değerin DOM manipülasyon yanıt patlamaz. Bazı basit javascript ile el atabileceği:

var inDistrict = document.getElementById('inDistrict');
if (inDistrict.onchange)
  inDistrict.onchange();

JQuery kullanıyorsanız, bu da kolay:

$('#inDistrict').change();

Eğer ajax isteği ile tüm dropdownlist yerine konum gibi görünüyor bu yana, sadece doldurma bitince değişim olayı var o javascript bazı atmak ve gitmek için iyi olmalıdır.

Lütfen onchage olay doğrultusunda yanlış durum kullanımı:

document.getElementByID

Doğru:

document.getElementById  

Note yerine yukarıda kullanarak daha olduğunu; siz de böyle açılır değeri uyarabilirsiniz:

onchange="alert(this.value);"

Then for dropdown:

Eğer [ ] elemanlarının adları eklerseniz, bunlar dizi örn olur:

<select name="myselect[]">

Now from php you can access each of its element like this: (assuming that you post method in the form)

echo $_POST['myselect'][0]; // this prints first item value
echo $_POST['myselect'][1]; // this prints second item value
echo $_POST['myselect'][2]; // this prints third item value
//and so on...