i onay kutusunu kontrol değeri alamadım neden?

2 Cevap php

Ben bir onay kutusu var. Bir kutu denetler, uygun ID metin kutusuna yerleştirilir. Veritabanında tek bir değer olduğunda Ancak, kontrol değeri elde edemezsiniz. Bana nedenini söyleyebilir misiniz? İşte benim kod:

<? if(isset($AcceptFriend)) {?>
<form action="<?=site_url()?>friends/Accept_Friend" name="orderform" id="orderform" method="post" style="background:#CCCC99">
<input type="text" name="chId" id="chId" >
<table  border="0" height="50%" id="chkbox" width="50%" >
<tr>
<? foreach($AcceptFriend as $row)
{?>
<tr>
<td>Name</td><td><?=$row['dFrindName'].'</br>';?></td>
<td> <input type="checkbox" name="checkId" id="checkId" value="<? echo  $row['dMemberId']; ?>" onClick="get_check_value()" ></td>
</tr>

<? }}?>
</tr>
 <tr> <td width="10px"><input type="submit" name="submit" id="submit" class="buttn" value="AcceptFriend"></td></tr>

</table>


</form>

Bu i kullanıyorum script

function get_check_value()
{
    var c_value = "";

    for (var i=0; i < document.orderform.checkId.length; i++)
       {
       if (document.orderform.checkId[i].checked)
          {
          c_value = c_value + document.orderform.checkId[i].value + "\n";
          }
       }
       alert(c_value);
       document.getElementById('chId').value= c_value;
}

2 Cevap

Eğer bir kez kimliği kullanırsanız document.orderform.checkId ki tek bir nesne olacak çünkü, document.orderform.checkId.length geri dönen değeri size o nesnenin özelliklerini numarası verecektir.

Eğer döngü içinde tüm bu özellikler üzerinden yürümek ve "kontrol" mülklerini isteyin. Onlar bu özellik yok çünkü, hata alırsınız ve komut başarısız olur.

Bir kereden fazla bir kimliği kullanırken size onlardan sayısını dönecektir, document.orderform.checkId bu ID ve uzunluğu tüm nesnelerin bir dizi olacak.

Eğer amaçlanan gibi bu durumda sizin döngü tüm onay kutularını sokmak yürümek olacaktır.

En iyi çözüm document.getElementsByName ('CheckId') kullanmak olacaktır ya da döngü başlamadan i = 1 ile yerine i = 0 tarafından göz ardı edilecek bir gizli kukla onay kutusunu eklemek için;

ID benzersiz olmalı beri, ben isim özniteliği kullanın ve her zaman bir dizi döndürür hangi document.getElementsByName ('CheckId') kullanmak için komut değiştirmek için tavsiye ederim.

Andr doğru ve daha iyi sağlıklı bir eleştiri için bir adamı DOWNVote değil - Onun cevabı Sizin sorunu çözülmüş değil, ama html kimlikleri benzersiz bir değer tutmak gerekir, sınıf kimliklerin tümü aynı isme sahip olabilir.