2011-03-25 64 views
0

我正在使用两个操作的控制器。一个只是一个显示视图的持有者,另一个是执行en事件的动作。所以,我喜欢控制这样的:jquery表单提交不符合正确的操作

public function showAViewAction(){ 
    //empty 
} 

public function addUserAction(){ 
     //Code to create a user 
} 

这里是表单代码:

<p> 
    <?php if(!empty($this->errorMessage)) : ?> 
     <img src="/images/view/exclamation.png" alt="error" style="vertical-align:middle;"/> 
     <span style="color:#f00;"><?php echo $this->errorMessage; ?></span> 
    <?php endif; ?> 
    </p> 
<br /> 
<form id="addUserForm" method="post" enctype="multipart/form-data"> 
    <p>This section is a disclaimer for requesting obscure data......</p> 
    <br /> 
    <p><strong>username:</strong></p> 
    <input type ="text" name ="username" id="username"/> 
    <input type ="text" name ="password" id="password" /> 
    <input type="submit" name="addUserBtn" id="addUserBtn" value="Add User" /> 
</form> 

现在在显示视图我创建了一个表格。我正在使用jQuery将表单请求发送到我的控制器中的addUser操作。它看起来像这样:

<script type="text/javascript"> 
$(document).ready(function() { 
    newRequestValidator = $('#addUserForm').validate({ 
     rules: { 
      username: 'required', 
      password: 'required' 
     }, 
    submitHandler: 
     function(form) { 

      var options = { 
       url: 'add-user', 
       dataType: 'json', 
       success: showUser 
      }; 
      $(form).ajaxSubmit(options); 
     } 
    }); 
}); 
function showUser(data) { 

    window.location = '/user/'; 

} 
</script> 

的问题是,当我点击我的形式提交按钮它击中showView行动,而不是ADDUSER作用。我究竟做错了什么?

+0

你确定'showUser'正在点击吗? – 2011-03-25 14:02:35

+0

控制器端的AddUser从不被点击触发。我有一个记录器,它从来没有被击中。 – Matt 2011-03-25 14:04:57

+0

如果你在'showUser' JS函数内部放置了一个'alert('Hi there')',那么当你点击这个按钮时你会得到这个吗? – 2011-03-25 14:07:36

回答

1

下载这个尝试改变从“添加用户”到“/用户/添加用户”的“URL”选项。如果您检查萤火虫或镶嵌在检查器中的铬的请求,则应该看到请求格式错误。

+0

+1好的电话兰斯 – 2011-03-26 00:17:43

2

您的操作没有正确命名?

public function showAView(){ 
    //empty 
} 

public function addUser(){ 
     //Code to create a user 
} 

应该

public function showAViewAction(){ 
    //empty 
} 

public function addUserAction(){ 
     //Code to create a user 
} 

编辑

在你访问这些不正确的话,你需要使用add-useraddUser

+0

对不起,这只是我的错字 – Matt 2011-03-25 15:39:58

+0

请参阅我的关于访问操作的编辑... – 2011-03-25 15:49:55

+0

进行了更改,但仍然没有结果。当我点击表单按钮showAViewAction被称为不addUserAction – Matt 2011-03-25 16:00:07