PHP:我的按钮在foreach循环中不能正常工作
PHP: My button doesn't properly work inside a foreach loop
我有这个find_all()函数,它写在一个单独的文件中:
public static function find_all() {
return self::find_by_sql("SELECT * FROM ".self::$table_name);
}
它在包含foreach循环的文件的顶部被引用:
<?php require_once("../../includes/initialize.php"); ?>
<?php if (!$session->is_logged_in()) { redirect_to("login.php"); } ?>
<?php
$parents = UserParent::find_all();
?>
这是foreach循环:
<?php foreach($parents as $parent): ?>
<div class='popup-screen' id = "popup">
<div class = "spacing">
Do you want to delete this data?
</div>
<a href="list_users.php?parentNum=<?php echo $parent->parentNum; ?>"> <input type="button" value="YES" class = "popup-button"> </a>
<input type="button" value="CANCEL" class = "popup-button" onClick = "hide();">
</div>
<tr class = "tr-1">
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><img src="../<?php echo $parent->image_path(); ?>" width="100" height = "100" class = "profile-pic"/></td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';">Parent</td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><?php echo $parent->username; ?></td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><?php echo ucwords($parent->firstName); ?></td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent->parentNum; ?>';"><?php echo ucwords($parent->lastName); ?></td>
<td onClick = "show();"><img src = "../stylesheets/images2/delete-icon.png" height="25" width="25" ></td>
</tr>
<?php endforeach; ?>
这是javascript代码:
function show()
{
document.getElementById("popup").style.display='block';
}
function hide(){
document.getElementById("popup").style.display='none';
}
基本上,我的代码所做的是创建从foreach循环获取数据的信息行。在每行的末尾是一个删除图标,如img标记所示。单击删除图标后,show()函数将运行(show()函数只显示弹出的div,它是不可见的)——确认用户是否想要删除他/她的数据。如果用户单击CANCEL,窗口将关闭,如javascript代码所示。如果用户点击是,它应该去链接:list_users.php??> ($parent->parentNum的值每行不同)。但是,锚标记总是检索第一行的链接,而不管它是第三行还是其他什么(顺便说一下,其他td标记上的链接可以工作)。现在,我的问题是,我如何正确链接YES按钮上的每一行弹出式div? $parent->parentNum的值对于每一行都是不同的
但是在你的代码中,它不是:
<?php echo $parent->parentNum; ?>
该值不会增加或改变,所以它对所有行都是相同的。
此外,我强烈建议使用
<button>
或<a>
元素。这就是它们存在的意义。<td>
不是用来点击的。好的设计实践(几乎)总是值得你付出一点额外的努力。
你的代码应该看起来更像
...
<td><a href='viewParent.php?n=<?php echo $n; ?>'></a></td>
...
<button name='show' value='1'>Show</button>
…其中$n
来自for循环。然后在页面顶部
if (isset($_POST['show'])) { ...logic... }
<?php
$parentNum = 0;
foreach($parents as $parent): ?>
<div class='popup-screen' id = "popup">
<div class = "spacing">
Do you want to delete this data?
</div>
<a href="list_users.php?parentNum=<?php echo $parent[$parentNum]; ?>"> <input type="button" value="list_users.php?parentNum=<?php echo $parent[$parentNum]; ?>" class = "popup-button"> </a>
<input type="button" value="CANCEL" class = "popup-button" onClick = "hide();">
</div>
<tr class = "tr-1">
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><img src="../<?php echo $parent->image_path(); ?>" width="100" height = "100" class = "profile-pic"/></td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';">Parent</td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><?php echo $parent[$parentNum]->username; ?></td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><?php echo ucwords($parent[$parentNum]->firstName); ?></td>
<td onClick = "document.location = 'viewParent.php?parentNum=<?php echo $parent[$parentNum]; ?>';"><?php echo ucwords($parent[$parentNum]->lastName); ?></td>
<td onClick = "show();"><img src = "../stylesheets/images2/delete-icon.png" height="25" width="25" ></td>
</tr>
<?php
$parentNum++;
endforeach; ?>
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作