从javascript文件更改主页面的INPUT值



我正试图使用从Ajax调用的javascript文件更改输入的值,显然,它不起作用:/

我有一个页面,我有:

<input type="text" id="hello">
$.ajax({
url : 'index.php',
type : 'GET',
data: "value=test",
success : function (result) {
},
error : function () {
}
});

在index.php中,我有:

echo "
<script>
parent.document.getElementById('hello').value = 'Please work';
</script>
";

我甚至尝试过";windowparent.docu……";,仍然没有运气。有没有办法通过PHP文件来实现这一点?谢谢大家!!

请注意,我不想在回调中这样做,因为我不想让用户看到所有变量的处理等。我希望所有这些信息都在PHP中完成,然后在完成后在主页上填写变量。

这类事情会让很多PHP程序员感到困惑。PHP渲染发生在服务器上。当页面交付给用户时,它只是HTML和javascript;进一步尝试通过PHP修改页面将不起作用;回显一行新的js不会将其附加到文档中并按照您期望的方式执行

相反,您需要让PHP脚本返回您想要插入的文本,并在呈现的页面中使用javascript来插入它:

$.ajax({
url : 'index.php',
type : 'GET',
data: "value=test",
success : function (result) {
document.getElementById('hello').value = result;
},
error : function () {
}
});

您真的不应该继续进行此设计。正确使用回调并正确地将接口与后端解耦

然而,如果你想在这里偷工减料,你应该能够解析得到的HTML字符串(只要它有效(,然后将解析的内容插入DOM,这应该可以实现你想要的:

$.ajax({
url : 'index.php',
type : 'GET',
data: "value=test",
success : function (result) {
document.appendChild(new DOMParser(result, "text/html").getRootNode().body);
},
error : function () {
}
});

看到你的评论,说不想要我们的JavaScript,因为用户可以看到代码,并且更喜欢在PHP(服务器端(。。。您可以完全跳过Ajax,只放一些类似。。。

<input type="text" id="hello" value="<?php echo $variableWithData; ?>" />

到PHP页面中,并且发送到客户端的HTML将具有类似。。。

<input type="text" id="hello" value="please work" />

最新更新