Uncaught TypeError при передаче переменной из FancyBox в родительский

У меня проблема, когда я передаю значение переменной из FancyBox. Сначала я скажу код:

Вот код в FancyBox:

JavaScript

function post_value(no){
parent.setSelectedUser(document.forms[no]["NO_INDUK"].value);
parent.$.fancybox.close();
}

HTML

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

Тогда это просмотр исходной страницы:

HTML исходный вид

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

И сообщение об ошибке:

Uncaught TypeError: Невозможно прочитать свойство ‘NO_INDUK’ из неопределенного

То есть, я надеюсь, что есть какой-нибудь ответ, и я был бы очень рад, если бы кто-то мог помочь мне.
Спасибо 🙂

1

Решение

Решено (с моими черными глазами!).

Поэтому, как сказал @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();
}

То есть.

Извините за индонезийский язык может сбить вас с толку. 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]