可以将JQuery load()注入到DIV中的PHP文件找出有关此DIV的任何内容吗?

时间:2015-03-13 14:29:59

标签: javascript php jquery

假设我去

$( '#' + subform_id ) .load( "subform.php" );

其中'#' + subform_id是DIV的ID ...有什么方法,subform.php中的PHP可以在其PHP代码中找到DIV的标识? (例如,使用自己的JS代码< script>部分)

或者通过某种机制在不知道其ID的情况下引用它? (例如,使用JQ'附加())

显然我可以将subform_id作为数据对象的参数传递(load()的第二个参数)。但我只是想知道......

稍后

跟进了我想到 Victor2748建议的内容......但实际上它是一个< SCRIPT>的ID。在我用来访问现有JS DOM的注入文件中阻塞。

Victor2748:如果你读过这篇文章,我不知道你怎么知道你的subform.php页面的父容器的内容" id"没有以某种方式将此id作为参数传递给load()函数的数据对象......

甚至更晚

这个帖子中的每条评论都说明了一些智慧!实际上,关于指定这是一个PHP文件的问题,我仍然试图解决一些问题:显然,当JS在客户端运行时 可以访问DOM 。但是如果你的 PHP代码需要知道它被加载到的DIV的名称,我相信你确实必须通过_POST或_GET传递它。我认为注入PHP代码可能需要这种信息的原因有很多,例如:所以它可以包含在某些时候将更多PHP注入同一个DIV的代码......

虽然......很明显,注入代码将不可避免地使用JS / JQ脚本,所以也许是时候找出你在DOM中所需要的东西。

2 个答案:

答案 0 :(得分:1)

在JavaScript中,您可以使用this.parentNode获取父容器,并使用this.parentNode.id获取父div的ID。

以下是加载块如何将自身作为对象/节点的示例:

var loadedBlock = document.getElementById("nameOfYourDownloadedParentContainer")

然后你可以使用loadedBlock.parentNode来获取它的父元素,然后你可以从中获取任何参数,以识别元素/ div。


<强> 更新

首先,您需要获取当前正在执行的<script>标记的节点:

var arrScripts = document.getElementsByTagName('script');
var currentScriptTag = arrScripts[arrScripts.length - 1];

然后,要获取脚本标记的父级,请使用:currentScriptTag.parentNode

(我还没有测试过,请告诉我它是否有帮助)

答案 1 :(得分:-1)

我想是这样的......如果你在subform.php中有一个脚本标签,并且该文件有以下HTML:提交表单,你应该能够:

var subformId = $('#mydiv').parent().id;

它可以工作,因为包含PHP文件时脚本标记会执行。将脚本标记放在subform.php的末尾以确保。