delete_define.php 中的 html 如下:
<form action="delete_now.php" onsubmit="my_funct();">
<input type="submit" name="my_submit" class="my_submit" value="submit"/>
</form>
JavaScript 片段如下:
<script type="text/javascript">
$(document).ready(function(){
function my_func(){
alert("from within my_func()");
}
});
</script>
delete_now.php内容是:
//php code snippet **[THIS LINE IS AN EDIT]**
<script type="text/javascript">
alert("from within delete_now.php");
</script>
当我第一次运行脚本时,我看到表单按钮,单击该按钮,然后在 Chrome 控制台中找到消息“my_func() 未定义”。浏览器立即显示来自delete_now.php的警报框,并且控制台中不存在错误消息。页面的 url 从 http://localhost/soc_net/delete_now.php 更改至http://localhost/soc_net/delete_now.php?my_submit=submit .
如果我尝试在不关闭浏览器的情况下第二次运行delete_define.php,我看不到表单按钮。如果我关闭浏览器并重新打开它,则会重复相同的情况。
我想要什么:
1) 表单按钮将在每次运行时显示。
2)我将单击提交按钮,然后 my_func() 将被执行,并且只有在执行后才会调用 delete_me.php
3) 首先,delete_me.php 中的 php 代码将被执行,只有在该页面中的 javascript 代码才会被执行之后。
请问附近有人吗?
编辑2:
delete_now.php 调用了 javascript 函数 stopUpload:
window.top.window.stopUpload('<?php echo $uploaded_file_name; ?>');
该函数在delete_define.php页面中定义。
delete_now.php 中的 php 代码片段有一个 session 变量,每次都会获取一个随机值。该值在 stopUpload() 中使用,但不幸的是 stopUpload 无法接收更改的 session 值。它使用第一次收到的值。
如何让它接收更改后的值?
我认为陈述问题(服务器端、客户端混合问题)不需要代码。
最终编辑: 我认为我的第二次编辑值得提出一个有关服务器端和客户端编程的新问题。所以我要这么做。我会在这里告诉新问题的网址
<强> here是新问题。
最佳答案
以下是您问题的答案:
1)如果我理解正确,您希望在“Delete_Now.php”和“Delete_Define.php”中显示“提交”按钮,因此我建议也在该页面中放置相同的 html 代码。
2)如果您想运行 my_func() n 表单提交,这里是我建议的代码:
<form action="delete_now.php" onsubmit="return my_func();">
<input type="submit" name="my_submit" class="my_submit" value="submit"/>
</form>
<script type="text/javascript">
function my_func(){
alert("from within my_func()");
return true;
}
</script>
3) 您无法在客户端代码 (JavaScript) 之后运行服务器端 (php) 代码。然而,有一个解决方法可以做到这一点,但我不推荐它:首先返回带有您想要显示给客户端的Javascript代码的页面内容,并且不要执行任何其他操作哦PHP端,然后执行您的客户端对服务器进行回调或 Ajax 调用以执行您想要在 php 上执行的操作。
我希望这有帮助:-)
关于php - jquery , html 表单在第一次后产生不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8739004/