如何在按钮点击时调用php函数

时间:2011-03-23 10:21:17

标签: php

这是两个文件

Calling.php

<html>
<body>
<form action="Called.php" method="get">
    <input type="button" name="B1" value="B1">
    <input type="button" name="B2" value="B2">
    <input type="Submit" name="Submit1"/>

    <!-- <a href="http://www.google.com?act=google">Google</a>
    <a href="http://www.yahoo.com?act=yahoo">yahoo</a>
     -->
</form>     
</body>
</html>

和Called.php

<?php
if(isset($_GET("Submit1")))
{   
        echo("<script>location.href = 'http://stackoverflow.com';</script>");
}
if(isset($_GET["B1"]))
{
    echo("<script>location.href = 'http://google.com/';</script>");
    exit();
} 
if(isset($_GET["B2"]))

 - List item

{
    echo "<meta http-equiv='refresh' content='0;url=http://www.yahoo.com'>";
    exit(); 
}
?>

当我点击按钮“B1”和“B2”时,页面会闪烁,但现在重定向和第三个“提交”按钮将重定向到新页面,然后我将输出作为“Called.php”。

这个php初学者请花几秒钟。

2 个答案:

答案 0 :(得分:10)

您不能直接因为按钮单击是客户端活动而PHP是服务器端。如果您提交所有输入,那么用户单击的那个将作为$ _GET数组的一部分提交,但只有当用户单击其中一个并且不提交表单时才会提交,例如,按文本中的Enter键输入。

您可以将AJAX事件附加到该按钮,并让它们触发PHP脚本以运行您要运行的功能,但这有其自身的一组问题。

编辑:我应该注意到,你的重定向方法至少可以说是不优雅的。你可以使用header()来进行重定向,它会比回复javascript更加清晰。

答案 1 :(得分:1)

您需要使用Ajax来执行此操作。如果您使用的是jQuery ajax,代码将看起来像这样

$(function(){
   $('input[type="button"]').click(function(){
        var name = $(this).attr('value');
        $.ajax({
            type :'GET',
            url  : 'Calling.php',
            data :{name:name}
            success : function(data) {
              //do smthng 
           }
        })
   })
})

//代码未经过测试。需要验证。