J'utilise un contrôleur avec deux actions. L'un est juste un détenteur pour afficher une vue et l'autre est une action à faire en événement. Donc, mon contrôleur aime comme ceci:Jquery formulaire soumettre ne pas frapper action correcte
public function showAViewAction(){
//empty
}
public function addUserAction(){
//Code to create a user
}
Voici le code du formulaire:
<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>
maintenant dans la vue affichée i ont créé une forme. J'utilise jquery pour envoyer la requête de formulaire à l'action addUser dans mon contrôleur. Il ressemble à ceci:
<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>
Le problème est que lorsque je clique sur le bouton Envoyer sur mon formulaire, il frappe l'action SHOWVIEW au lieu de l'action addUser. Qu'est-ce que je fais mal?
Etes-vous sûr que 'showUser' tire sur le clic? –
AddUser du côté du contrôleur n'est jamais déclenché lors d'un clic. J'ai un enregistreur et il n'est jamais touché. – Matt
Si vous mettez une alerte ('Salut à tous)' dans la fonction JS 'showUser', obtenez-vous cela lorsque vous cliquez sur le bouton? –