当我从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>
然后,当我点击按钮&#39; Pilih&#39;时,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);
错误信息是:
也就是说,我希望有任何回复,如果有人可以帮助我,我会很高兴。 谢谢:))
答案 0 :(得分: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();
}
那就是。
对不起,印度尼西亚语可能会让您感到困惑。 :)