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