2013-05-10 29 views
0

我在一个PHP文件中有一个表单,我想将其包含在其他页面中的iframe中的各种其他文件中。在某些情况下,表单目标应为_top,但在其他情况下应为_blank。所以在我看来,我应该能够在一个单独的PHP文件中设置目标,然后在该文件中包含包含该表单的PHP文件。基于东西,我在网上找到(我这里是新手),它似乎我的东西作为使用getElementsByTagName更改表单目标的简单方法?

<script type-"text-javascript"> 
document.getElementsByTagName('form').target = "_top"; 
</script> 

简单应该能够做到这一点。但是这并不起作用 - 目标只是默认并在iframe中打开。有一些简单的方法来完成这个目标吗?

+3

提示:方法名称是getElementsByTagName。请注意元素末尾的** s ** – nicopico 2013-05-10 18:42:56

回答

1

getElementsByTagName返回一个集合。遍历它,或者只是使用[0]拿到第一......然后设置target属性:

document.getElementsByTagName('form')[0].target = "_top"; 

var forms = document.getElementsByTagName('form'); 
for (var i = 0; i < forms.length; i++) { 
    forms[i].target = "_top"; 
} 

注意,无论这些都将被执行<form>后在页面上可用/呈现。因此,这意味着在<form>之后或在window.onload事件的内部,将该代码从字面上加上

参考:

+0

这回答了“如何在JavaScript中执行此操作”问题,但使用JavaScript执行此操作会变得更加容易出错。他还问了什么最简单的方法来实现这一点。这将是所有这一切都保存在PHP中,因此发送到客户端的HTML格式已经处于它所需要的状态,即 - 没有对目标进行Javascript调整。他尽可能多地表示表单的PHP文件将包含在其他PHP文件中。 – 2013-05-10 18:56:31

+1

@ErikNedwidek很好。您提供了一个PHP解决方案,我提供了一个JavaScript解决方案。我不是一些PHP程序员,也没有太多的经验,所以我会坚持下去。欢迎您以PHP路径帮助OP,我无法做到。如果这个答案结果太难实施或不起作用,那就这样吧。同时,如果'target'需要动态设置,PHP将无法提供帮助。这就是我想要回答的所有问题,他们提供 – Ian 2013-05-10 19:01:43

+1

的代码并不意味着踩到你的脚趾或侮辱你(重新阅读我的评论,我发现它可能被认为有点不起眼)。这是更确切的问题,以确保*我*没有失去重要的东西。 – 2013-05-10 19:06:23

1

由于您使用的是PHP文件来调用表单的PHP文件,为什么不设置一个变量?

form.php的:

<form target="<?php echo $target; ?>"> 

parent.php:

<?php 
$target="_top"; 
include "form.php"; 
?> 

some_other.php:

<?php 
$target="_blank"; 
include "form.php"; 
?> 

现在我真正的建议是可以让你的形式进入一个函数(例如 - outputForm),以便您可以在需要该窗体的每个PHP文件的顶部执行include_once并调用outputForm(“_ blank “)你需要的形式。

+0

非常感谢,这很好。我曾问过javascript,但没有意识到在PHP中实现起来更简单。我可以看到你的“真正的建议”可能更加优雅,但对于我来说这点稍微先进一些。 – user1903000 2013-05-11 03:32:08