jquery,html表单在第一次产生后产生不同的输出

时间:2012-01-05 07:26:41

标签: 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片段如下:

<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的警告框,并且控制台中没有错误消息存在。该网页的网址从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代码执行后才会执行。

pz周围有人吗?

编辑2:

delete_now.php调用了javascript函数stopUpload:

window.top.window.stopUpload('<?php echo $uploaded_file_name;  ?>'); 

此函数在delete_define.php页面中定义。

delete_now.php中的php代码片段有一个会话变量,每次都取一个随机值。该值在stopUpload()中使用,但遗憾的是stopUpload无法接收更改的会话值。它使用了第一次收到的价值。

如何让它接收更改后的值?

我认为说明问题(服务器端,客户端混合概率)将不需要代码。

最终编辑: 我认为我的第二次编辑值得关于服务器端和客户端编程的新问题。所以我是GONNA那样做的。我会在这里告诉新问题的网址

here是新问题。

1 个答案:

答案 0 :(得分:0)

以下是您的问题的答案:

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上执行您想要执行的操作。

我希望这会有所帮助: - )