У меня проблема, когда я передаю значение переменной из FancyBox. Сначала я скажу код:
Вот код в FancyBox:
function post_value(no){
parent.setSelectedUser(document.forms[no]["NO_INDUK"].value);
parent.$.fancybox.close();
}
while($baris = mysqli_fetch_assoc($hasil))
{
//1 item($baris);
$no++;
?>
<tr>
<form name="<?php echo $no ?>" method='post'>
<td><?php echo $no ?></td>
<td><input id="NO_INDUK" class="form-control" type="text" name="NO_INDUK" size="5" value="<?php echo $baris["NO_INDUK"] ?>" readonly/></td>
<td><?php echo $baris["NAMA_SISWA"] ?></td>
<td><?php echo $baris["NAMA_WALI"] ?></td>
<td><?php echo $baris["ALAMAT"] ?></td>
<td>
<a class="btn btn-success" href="#" onclick='post_value(<?php echo $no ?>)'> Pilih</a>
</td>
</form>
</tr>
<?php
} //untuk while
?>
Тогда это просмотр исходной страницы:
<tr>
<form name="2" method='post'>
<td>2</td>
<td><input id="NO_INDUK" class="form-control" type="text" name="NO_INDUK" size="5" value="112312" readonly/></td>
<td>Angga Lisdiyanto</td>
<td>asa</td>
<td>asdsad</td>
<td>
<a class="btn btn-success" href="#" onclick='post_value(2)'> Pilih</a>
</td>
</form>
</tr>
<tr>
<form name="3" method='post'>
<td>3</td>
<td><input id="NO_INDUK" class="form-control" type="text" name="NO_INDUK" size="5" value="2543" readonly/></td>
<td>Fina Arzika Humaidah</td>
<td>Nur Kojim</td>
<td>Campurejo, Panceng, Gresik</td>
<td>
<a class="btn btn-success" href="#" onclick='post_value(3)'> Pilih</a>
</td>
</form>
</tr>
Затем, когда я нажимаю кнопку «Pilih», FancyBox не закрывается и значение не передается. Если код javascript похож на этот, он может успешно передать значение:
function post_value(no){
parent.setSelectedUser(no); //just test, passing from no value
parent.$.fancybox.close();
}
После отладки в Chrome в этой строке есть ошибка:
parent.setSelectedUser(document.forms[no]["NO_INDUK"].value);
И сообщение об ошибке:
То есть, я надеюсь, что есть какой-нибудь ответ, и я был бы очень рад, если бы кто-то мог помочь мне.
Спасибо 🙂
Решено (с моими черными глазами!).
Поэтому, как сказал @JFK, onclick = ‘post_value (n)’ передает индекс формы, а не имя формы. Поэтому я попробую добавить несколько символов в имя формы следующим образом:
<form name="form<?php echo $no ?>" method='post' action="">
Тогда в кнопке вот так:
onclick='post_value("form<?php echo $no ?>")'
И на JavaScript:
function post_value(NamaForm){
parent.setSelectedUser(document.forms[NamaForm]["NO_INDUK"].value);
parent.$.fancybox.close();
}
То есть.
Извините за индонезийский язык может сбить вас с толку. 🙂
Других решений пока нет …