Php jquery、html表单在第一次之后生成不同的输出
delete_define.php中的html如下所示:Php jquery、html表单在第一次之后生成不同的输出,php,javascript,jquery,html,Php,Javascript,Jquery,Html,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代码片段如下所示: <form action="delete_now.php" onsubm
<form action="delete_now.php" onsubmit="my_funct();">
<input type="submit" name="my_submit" class="my_submit" value="submit"/>
</form>
javascript代码片段如下所示:
<form action="delete_now.php" onsubmit="my_funct();">
<input type="submit" name="my_submit" class="my_submit" value="submit"/>
</form>
<script type="text/javascript">
$(document).ready(function(){
function my_func(){
alert("from within my_func()");
}
});
</script>
$(文档).ready(函数(){
函数my_func(){
警报(“从my_func()中”);
}
});
delete_now.php的内容是:
//php code snippet **[THIS LINE IS AN EDIT]**
<script type="text/javascript">
alert("from within delete_now.php");
</script>
//php代码片段**[这一行是编辑]**
警报(“从delete_now.php中删除”);
第一次运行脚本时,我看到表单按钮,单击该按钮,在chrome控制台中发现消息“my_func()未定义”。浏览器立即显示delete_now.php中的警报框,控制台中不存在错误消息。页面的url从更改为
如果我试图在不关闭浏览器的情况下第二次运行delete_define.php,我将看不到表单按钮。如果我关闭浏览器并重新打开它,同样的情况会在浏览器上重复
我想要的是:
1) 每次跑步时都会显示“表单”按钮
2) 我将单击submit按钮,然后执行my_func(),只有在执行之后才会调用delete_me.php
3) 首先执行delete_me.php中的php代码,然后才执行该页面中的javascript代码
plz附近有人吗
编辑2:
delete_now.php调用javascript函数stopUpload:
window.top.window.stopUpload('<?php echo $uploaded_file_name; ?>');
window.top.window.stopUpload(“”);
此函数在delete_define.php页面中定义
delete_now.php中的php代码段有一个会话变量,每次都取一个随机值。该值在stopUpload()中使用,但遗憾的是stopUpload无法接收更改的会话值。它使用第一次收到的值
如何使其接收更改的值
我认为说明问题(服务器端、客户端混合问题)不需要代码
最终编辑:
我认为我的第二次编辑值得提出一个关于服务器端和客户端编程的新问题。所以我要这么做。我将在这里告诉您新问题的URL
是新问题。以下是您问题的答案: 1) 如果我理解正确,您希望在“Delete_Now.php”和“Delete_Define.php”中显示提交按钮,因此我建议在该页面中也放置相同的html代码 2) 如果要运行我的函数()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>
函数my_func(){
警报(“从my_func()中”);
返回true;
}
3) 不能在客户端代码(JavaScript)之后运行服务器端(php)代码。不过,有一个解决方法可以做到这一点,但我不建议这样做:首先用Javascript代码返回您希望显示给客户端的页面内容,不要在PHP端执行任何其他操作,然后在客户端对服务器进行回调或Ajax调用,以在PHP上执行您希望执行的操作
我希望这有帮助:-)我的函数需要移到$(document).ready(function()…为什么?为什么显示'my_func()未定义“”?因为my_func是在页面加载时运行的函数范围内定义的,在该函数之外不可访问。这就是为什么当发生onsubmit事件时,您的函数不可访问!您的建议不起作用,但只是一个快速的健全性检查问题-您如何填充
$upload_file_name
?此外,您可以通过将表单的方法
属性设置为POST
,而不是将其保留为默认值(GET
)1)和2)罚款,防止URL更改。至于3)解决办法是什么?我想在delete_now.php中在php之后执行js,而不是在js之后执行php对不起,我以为您想在Javascript之后运行php。在这种情况下,代码应该可以正常工作:-)为什么要使用onsubmit=“return my_func();”而不是onsubmit=“my_func();”?