PHP和JavaScript按钮不起作用?

时间:2011-12-01 09:44:08

标签: php javascript

我的代码(下方)适用于Internet Explorer,但不适用于Chrome,Safari或Mozilla Firefox。不知道为什么,但有人可能指出我正确的方向吗?这段代码有一些按钮可以改变表单的action属性,并将数据导向不同的PHP控制器文件,做不同的事情,比如创建用户,修改用户等等。

JavaScript代码:

<script language="javascript">

function formAction(flag) {
    switch (flag){
        case "create": 
            document.forms.useraction.action = "/apps/portal_admin/create_user1.php";
            break;
        case "modify":
            document.forms.useraction.action = "/apps/portal_admin/modify_user1.php";
            break;
        case "copy":
            document.forms.useraction.action = "/apps/portal_admin/copy_user1.php#user2";
            break;
    }
    document.forms.useraction.submit();
}
function helloworld() {
    alert("Hello World");
}
</script>

PHP代码:

<?php
    if ($authlib->auth_authobj($posting_userid,$_COOKIE['shost_app_id'],'002')>=2) {
        echo "<input type=\"button\" value=\"Create User\" class=\"formButton\" name=\"create\" id=\"create\" onClick=\"formAction('create')\">\n";
        echo "<input type=\"button\" value=\"Copy User\" class=\"formButton\" name=\"copy\" onClick=\"formAction('copy')\">\n";
    }
    if ($authlib->auth_authobj($posting_userid,$_COOKIE['shost_app_id'],'002')>=3) {
        echo "<input type=\"button\" value=\"Edit User\" class=\"formButton\" name=\"modify\" onClick=\"formAction('modify')\">\n";
        echo "<input type=\"button\" value=\"This button works\" class=\"formButton\" name=\"Working\" onClick=\"helloworld()\">\n";
    }
?>

2 个答案:

答案 0 :(得分:1)

我假设您在页面上只有一个表单。您的代码有两个错误。

<强> 1 要解决您的问题,请更改所有

  document.forms.useraction.action

  document.useraction.action

<强> 2
另请注意,formAction是一个保留的处理程序。您不能将形成用作函数名称。将函数名称更改为formActionz或其他:

function formActionz(flag)

答案 1 :(得分:0)

根据TheNoble-Coder的回答,重新构建代码可能会更好,如下所示:

var actions = {
    'create': '/apps/portal_admin/create_user1.php',
    'modify': '/apps/portal_admin/modify_user1.php',
    'copy':   '/apps/portal_admin/copy_user1.php#user2'
};

function formHandler(event)
{
    var target = window.event.target || window.event.srcElement,
        form = document.forms['useraction'];

    form.action = actions[target.name];
    form.submit();
}

小提琴: http://jsfiddle.net/AmmTZ/

的jQuery

如果您使用jQuery,则可以使用以下代码并避免在元素上使用onclick=

$(function() { // Shorthand for $(document).ready

    $('[name=create], [name=modify], [name=copy]')
    .click(function() {
        $('form[name=useraction]').prop('action', actions[this.name]);
    });

});