gpt4 book ai didi

javascript - 点击关闭按钮后模态自动重新打开

转载 作者:行者123 更新时间:2023-11-30 17:43:39 25 4
gpt4 key购买 nike

我一直在尝试在表格中动态创建模态视图。

用于创建表的数据来自 sql 数据库。

现在我的问题:

每当我单击一个名为“详细信息”的按钮时,模态视图就会打开并包含它应该包含的数据。但是,当我尝试使用“关闭”- 按钮或右上角的 X 关闭 View 时,模态视图将关闭一秒钟并自行重新打开。执行上述操作之一后,背景会变暗。

棘手的部分来了。每当我使用键盘上的退出按钮关闭 View 时,它都会按预期关闭,然后我会返回到之前的 View 。

<?php
mysql_connect("localhost", "****" , "****");
mysql_select_db("hallo");

$sql= "SELECT * FROM erfassung WHERE Status='Abgeschlossen'";
$query=mysql_query($sql) or die (mysql_error());

while($row = mysql_fetch_assoc($query)) {

$thisId = $row['id'];
$thisModalId = 'modal'.$thisId;
$thisModalIdHref = '#'.$thisModalId;
$thisFormDoneId = $row['id'].'FormDoneId';
// Create table row
echo "<tr onclick=\"input\" data-toggle=\"modal\" href='$thisModalIdHref'>";
echo "<td>";
echo $row['Name'];
echo "<td>";
echo $row['Betreff'];
echo "<td>";
echo "<button class=\"btn btn-primary btn-lg\" data-toggle=\"modal\" data-target='$thisModalIdHref'>";
echo "Details";
echo "</button>";


echo"<div class=\"modal fade\" id='$thisModalId' tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"myModalLabel\" aria-hidden=\"true\">";
echo "<div class=\"modal-dialog\">";
echo "<div class=\"modal-content\">";
echo "<div class=\"modal-header\">";
echo "<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-hidden=\"true\">&times;</button>";
echo "<h4 class=\"modal-title\" id=\"myModalLabel\">Weitere Information </h4>";
echo "</div>";
echo"<div class=\"modal-body\">";
echo "<dl class=\"dl-horizontal\">";
echo "<dt>Bereich</dt>";
echo "<dd>" .$row['Bereich']. "</dd>";
echo "</dl>";
echo"</div>";
echo"<div class=\"modal-footer\">";
echo "<button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>";
echo "<button type=\"button\" class=\"btn btn-primary\">Save changes</button>";
echo"</div>";
echo"</div>"; //<!-- /.modal-content -->
echo"</div>";//<!-- /.modal-dialog -->
echo"</div>";//<!-- /.modal -->
echo "</td>";
echo "</tr>";
}

?>

为了澄清:

如果 $thisModalId 更改为之前的“MyModal”,它会起作用,但按钮将按预期打开相同的文本。

如果您需要更多源代码或其他东西,我非常乐意发布。

在此先感谢您的帮助。

最好的问候。

最佳答案

这可能是由于您的模态 div 是在定义了 onclick 处理程序的元素 (tr) 中定义的。如果关闭按钮处理程序不使用点击事件,它将向上冒泡到包含元素 (div, div, div, div, td, tr)。当它到达 tr 时,onclick 处理程序将执行并且模式将再次打开。

显然,您可以通过在表结构中不包含模态 div 来解决这个问题,它实际上并没有任何功能。这意味着您将不得不执行多个单独的循环,因为 div 必须一直位于表格之外。这并不一定意味着如果您采纳上述一些评论者的建议并将 PHP 与 HTML 稍微分开,您的代码就会变得困惑。

尝试这样的事情:

<?php
// Collect data
mysql_connect("localhost", "****" , "****");
mysql_select_db("hallo");

$sql= "SELECT * FROM erfassung WHERE Status='Abgeschlossen'";
$query=mysql_query($sql) or die (mysql_error());

$modals = array();
while($row = mysql_fetch_assoc($query)) {
$modals[] = array(
'id' => 'modal' . $row['id'],
'href' => '#modal' . $row['id'],
'FormDoneId' => $row['id'] . 'FormDoneId',
'Name' => $row['Name'],
'Betreff' => $row['Betreff'],
'Bereich' => $row['Bereich'],
);
}
?>

<table> <!-- Or something -->

<?php
foreach ($modals as $modal) {
// Create table rows
?>
<tr onclick="input" data-toggle="modal" href="<?php echo $modal['href'] ?>">
<td>
<?php echo $modal['Name'] ?>
<td>
<?php echo $modal['Betreff'] ?>
<td>
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="<?php echo $modal['href'] ?>">
Details
</button>
</td>
</tr>
<?php
}
?>

</table>

<?php
foreach ($modals as $modal) {
// Create modal divs
?>
<div class="modal fade" id='<?php echo $modal['id'] ?>' tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">Weitere Information </h4>
</div>
<div class="modal-body">
<dl class="dl-horizontal">
<dt>Bereich</dt>
<dd><?php echo $modal['Bereich'] ?></dd>
</dl>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div> //<!-- /.modal-content -->
</div>//<!-- /.modal-dialog -->
</div>//<!-- /.modal -->
<?php
}

关于javascript - 点击关闭按钮后模态自动重新打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20564270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com