确定要删除哪个节点的想法

时间:2016-02-09 18:24:38

标签: javascript php html xml dom

我网站的主页显示我在xml文件中的所有电影细节(使用foreach PHP循环和DOM执行),我想为每部电影添加一个删除按钮,所以这应该在循环内完成,问题是我知道如何删除xml节点,给定电影标题,但是,我无法找到一种方法将数据(电影标题)传输到页面我可以确认删除,我尝试了一些无效的解决方案:

- 我在PHP循环中尝试<form method="post" action="foobar"><input type="hidden"name="deletion" value="php code giving the movie title">,但正如您所看到的,每次循环再次运行时它会给出相同的名称,因此它显然不起作用。

- 关于在循环中使用按钮而不是表单,使用onClick事件功能,但我不想在其中包含js

- 我在论坛上寻找解决方案,我发现了cookie,会话,阵列名称......我也不想使用它们,因为它们不是有效的,因为我不能确定转移了哪个电影标题(因为我甚至不知道包含它的变量的名称)

这个问题还有其他解决办法吗?会很棒 PS:我正在手工编写,一位朋友已经告诉我,如果我使用的是框架,那将非常简单,但我想先学习手工编写代码,然后再编译框架。

如果有必要,我当然可以提供代码。

    foreach($Movies as $Movie) { ?>
    <div class="iodata">
    <?php echo "Movie : {$Movie->Title}<br /><br />";
    echo "Genre : {$Movie->Genre}<br /><br />";
    echo "Year : {$Movie->Year}<br /><br />";
    echo "Actors : {$Movie->Cast}<br /><br />";
    echo "Director : {$Movie->Director}<br /><br>";
    echo "Synopsis : {$Movie->Synopsis}<br /><br />";?>
    <form method="post" action="confirm.php">
    <input type="hidden" name="deletion" value="<?php echo "$Movie->Title";?>">
    <input type="submit" value="delete this">
    </form>
    </div><br>
    <?php }}?>

1 个答案:

答案 0 :(得分:1)

也许不是答案,但这并不符合评论。

尝试这些文件,看看它们是否适合您:

<强> movies.php

<?php

  $Movies = [
     (object) [ 'Title' => 'Foo', 'Genre' => 'Action' ],
     (object) [ 'Title' => 'Bar', 'Genre' => 'Drama' ],
  ];

  foreach($Movies as $Movie) { ?>
    <div class="iodata">
    <?php echo "Movie : {$Movie->Title}<br /><br />";
    echo "Genre : {$Movie->Genre}<br /><br />";
    echo "Year : {$Movie->Year}<br /><br />";
    echo "Actors : {$Movie->Cast}<br /><br />";
    echo "Director : {$Movie->Director}<br /><br>";
    echo "Synopsis : {$Movie->Synopsis}<br /><br />";?>
    <form method="post" action="confirm.php">
    <input type="hidden" name="deletion" value="<?php echo "$Movie->Title";?>">
    <input type="submit" value="delete this">
    </form>
    </div><br>
    <?php
  }

<强> confirm.php

<?php

    echo "<pre>" . print_r( $_REQUEST, 1 ) . "</pre>";

如果单击第一个按钮,则应该看到

Array
(
    [deletion] => Foo
)