gpt4 book ai didi

javascript - 如何在没有单击或来自 php 的 onload 事件的情况下执行 javascript?

转载 作者:行者123 更新时间:2023-11-30 17:34:00 25 4
gpt4 key购买 nike

我有一个名为 func.js 的 javascript,因为有一个名为 show 的函数需要 2 个参数,我需要做的是我想从 php 调用该函数,我可以'在这里不要使用任何点击或加载事件我的脚本看起来像这样

   <html>
<head></head>
<script type='text/javascript' src='path/to/func.js'></script>
<body>
some div etc
<form method='post' action="" >
.....
.....
</form>
</body>
</html>

<!-- after submit of form validation is in php -->
<?php

/* here I want to call javascript, where arguments are php variables
show('argument1','argument2'); */

// I tried to echo like this
echo "<script>show('$argument1',$argument2')</script>";
?>

那么我的情况的解决方案是什么?

最佳答案

您拥有的代码应该可以正常工作……大多数时间。不幸的是,您没有告诉我们为什么它不起作用 - 是否存在 PHP 错误?有JS错误吗? — 而且您没有向我们展示 PHP 输出的结果 JavaScript 或变量的内容,因此我们可以自己弄清楚。

对于这个问题,最有可能的两个解释(也是我目前唯一想到的)是:

变量中的数据有问题

变量包含不能出现在 JavaScript 字符串中的字符或必须在 JavaScript 字符串中转义的 ' 字符。

JSON 是 JavaScript 的一个充分子集,json_encode 函数将转义(并引用)大多数数据,因此适合在 JS 中使用。

<script>
show(<?php echo json_encode($argument1); ?>, <?php echo json_encode($argument2); ?>)
</script>

你的时间有问题

您有一条 HTML 评论说“表单验证提交后是在 php 中”,但是您共享的代码中没有任何内容可以强制执行。

您需要在脚本的生成过程中使用 if (isset($_POST['some_data_from_your_form'])) { ... } 之类的东西,以便它仅在提交表单时出现而不是最初加载时。


如果这不起作用,那么您确实需要查看变量是什么、生成的 JS 是什么以及 JavaScript 错误控制台显示的内容。


HTML 元素结束后不允许使用脚本元素。虽然浏览器会从该错误中恢复,但您确实应该将脚本移到 BODY 中。

关于javascript - 如何在没有单击或来自 php 的 onload 事件的情况下执行 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22420978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com