Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确定要删除哪个节点的想法_Javascript_Php_Html_Xml_Dom - Fatal编程技术网

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

Javascript 确定要删除哪个节点的想法,javascript,php,html,xml,dom,Javascript,Php,Html,Xml,Dom,我的网站主页在一个xml文件中显示了我拥有的电影的所有细节(使用foreachPHP循环和DOM执行),我现在想为每部电影添加一个删除按钮,这样就应该在循环中完成,问题是我知道如何删除xml节点,给定电影标题,但是,我找不到传输数据的方法(电影标题)在确认删除的页面上,我尝试了一些无效的解决方案: -我在PHP循环中尝试了一个,带有,但正如您所看到的,每次循环再次运行时,它都会给出相同的名称,因此它显然不起作用 -考虑过在循环中使用按钮而不是表单,以及onClick事件函数,但我根本不想在其中包

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

-我在PHP循环中尝试了一个
,带有
,但正如您所看到的,每次循环再次运行时,它都会给出相同的名称,因此它显然不起作用

-考虑过在循环中使用按钮而不是表单,以及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 }}?>
foreach($Movies作为$Movie){?>

也许不是答案,但这与评论不符

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

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
  }
<?php

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

你能为你的第一次尝试添加代码吗?使用for循环和
?这应该可以很好地工作-它可能很小。@Kenney这不可能,从逻辑上讲,因为所有表单都有相同的输入名称,而在操作发生的另一个页面中,我尝试
回显
$\u POST['deletation']
上面写着,删除未定义的索引。谢谢。你需要
-默认值是
get
,它将
删除
放在
$\u get
中。你也可以使用
$\u请求
,然后不管它是POST还是get。@kenny这实际上是一个测试页面代码,在主页面中,我把
方法=“POST”
这就是为什么我提到它不起作用的原因,糟糕的是我会编辑帖子,但仍然没有解决任何问题。好的,现在,如果你把它放在你的
确认.php
中,你会看到
删除
有一个不同的值,这取决于你点击的提交按钮:
回显“。打印($\u post,1)。”;
它们实际上也不起作用,数据根本没有发送到确认页面,这就是问题所在。因此,您将第一个剪贴片段粘贴到名为“movies.php”的文件中,将第二个片段粘贴到名为“confirm.php”的文件中,然后通过Web服务器请求第一个文件,单击一个按钮,但什么都没有发生?我测试了:-这些是完全相同的文件。
Array
(
    [deletion] => Foo
)