Aynı adı taşıyan üç select etiketleri okuma seçeneği

2 Cevap php

How can i have three or more select tags with same names(as in my program, the select tags are being generated dynamically), and select independently what option was selected. I have a loop, where my php reads a sql table, and for each row, it creats a select tag and a button with it.

<select name="vote">
    <option value="1">1</vote>
    <option value="2">2</vote>
    <option value="3">3</vote>
</select>

<input type="button" onclick="vote()">

Yani benim sql tablo 3 satır olduğunu varsayalım, yani butonları ile 3 seçeneğini etiketler oluşturulmuş olacaktır.

Şimdi soru nasıl ben select tag ne seçenek seleted var görebilirsiniz olduğunu?

Herkes bana bu konuda yardımcı olabilir.

Zeeshan

2 Cevap

Eğer özdeş olan bir formda birden fazla unsurları varsa name onlar DOM bir toplama (aslında, bir dizi) haline bağlıyor.

Yani kimse bu gibi seçtiğiniz olabilir nerede

<form name="test">
  <select name="example"></select>
</form>

Bunu gibi seçme öğeye erişmek istiyorum

document.forms.test.example;

Şimdi, böyle 2 veya daha fazla olsaydı

<form name="test">
  <select name="example"></select>
  <select name="example"></select>
  <select name="example"></select>
</form>

Böyle DOM onlara ulaşmak istiyorum

document.forms.test.example[0];
document.forms.test.example[1];
document.forms.test.example[2];

DÜZENLEME

Eğer isim [] eklemek sürece Ah, PHP ucunda, birden değer tanımaz - bu aynı anahtar-name değerleri yerine, daha ziyade bir dizi olarak bunları kullanmak için PHP söyler.

<form name="test">
  <select name="example[]"></select>
  <select name="example[]"></select>
  <select name="example[]"></select>
</form>

Sonra, bu kadar gibi bu değerleri okumak istiyorum

<?php

$exampleArray = $_GET['example'];
// you can now loop over $exampleArray or whatever.

Onlar aynı adı varsa, o zaman onları ayırt etmek için tek yol, tüm bunların değerleri, belirli bir seçme öğesi benzersiz olmak zorunda değildir.

Bu mümkün değilse, o zaman onlara (örneğin name="vote[<?php echo $row_id; ?>]") farklı isimler vermek zorundadır.

Ayrıca, PHP bir "özelliği" Eğer aynı ada sahip birden unsurları varsa, isim karakterleri bitmelidir gerektirir "[]" erişilecek sunulan değerlerden daha sonra biri için sırayla.