【问题标题】:PHP foreach loop outside loopPHP foreach 循环外循环
【发布时间】:2014-03-15 14:17:52
【问题描述】:

我正试图围绕 PHP 和变量范围展开思考。请看以下内容:

<?php  foreach ($data as $tip) { ?>              
  <tr>
    <td><?php echo $tip['id']; ?></td>
    <td><?php echo $tip['title']; ?></td>                  
    <td class="delete"><a href="#deleteModal" class="modal"><i class="icon-cross"></a></i></td> 
  </tr>                                                
<?php } ?>

这只是运行一个 foreach 循环,从数据库中提取一些信息并将其显示在一个表中。最后一个表格单元格中有一个用于删除该文章的图标。我想要做的是有一个模态弹出窗口,要求确认删除该特定文章,但我无法将提示 ID 与删除按钮联系起来,因为模态窗口位于循环之外。如何访问个人 ID?

【问题讨论】:

  • php 与模式弹出窗口或任何类型的弹出窗口无关。这纯粹是客户端的事情。您需要一些 javascript 来处理点击事件,这些事件将“知道”点击了哪个元素,因此您可以提取 ID 等等。

标签: php foreach scope


【解决方案1】:

这样做:

<?php  foreach ($data as $tip) { ?>              
  <tr>
    <td><?php echo $tip['id']; ?></td>
    <td><?php echo $tip['title']; ?></td>                  
    <td class="delete" onclick="deleteArticle(<?php echo $tip['id'] ?>)">
         <a href="#deleteModal" class="modal">
           <i class="icon-cross"></i>
         </a>
    </td> 
  </tr>                                                
<?php } ?>

<script>
   function deleteArticle(id){
     // now you can do what ever you want to do with this id
   }
</script>

【讨论】:

  • 我现在明白了,谢谢。虽然我发现“delete”是保留字,所以我把函数名改成了“deleteArticle”
【解决方案2】:

有一个内置的javascript函数称为“确认”。

如果你使用的是 JQuery(我假设你是)试试这个:

$('.delete').click(function(){
  var check = confirm("Are you sure you want to delete this article?");
  if(check)
  {
    // you code here
  }
  else return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-26
    • 2012-07-19
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2012-10-02
    • 2023-04-06
    • 2014-10-19
    相关资源
    最近更新 更多