У меня есть эта форма, которая обновляет информацию о пользователе на db. Однако эта функция не работает с ajax (работает с простой отправкой с обновлением).ajax form не обновляет значения
Эта Postes образуют последовательную форму данных на сервер JQuery
$('#commit-changes').click(function(){
$('#validation').submit(function(){
$.ajax({
type: "POST",
data: $("#validation").serialize(),
cache: false,
url:"modules/user/updateuser.php",
success : function(data){
$("#response-update").html(data);
},
error:function(){
alert("ERROR");
}
});
});
});
Вот HTML, который выводит разметку HTML
$rcs_roles = $user->getRoles();
$role ='';
foreach($rcs_roles as $roles)
{
if($roles->role_number == $rcs_user->permissao)
$role .= '<option value="'.$roles->role_number.'" selected="selected">'.$roles->role.'</option>';
else
$role.= '<option value="'.$roles->role_number.'">'.$roles->role.'</option>';
}
if($rcs_user->activo == 0)
{
$activo = '<input type="checkbox" name="activo" class="on_off_checkbox" value="1" />';
}
else
{
$activo = '<input type="checkbox" name="activo" class="on_off_checkbox" checked="checked" value="1" />';
}
$response = '';
$response.='<form id="validation" action="" method="post">
<fieldset >
<input type="hidden" name="user_id"
value="'.$_POST['user_id'].'"/>
<legend>Actualizar Dados Utilizador</legend>
<div class="section ">
<label>Nome<small>Insira o seu nome</small></label>
<div>
<input type="text" class="validate[required,custom[onlyLetterSp]] large" name="nome" id="f_required" value="'.utf8_encode($rcs_user->nome).'">
</div>
</div>';
$response.='<div class="section ">
<label> Email<small>Insira o seu email</small></label>
<div>
<input type="text" class="validate[required,custom[email]] large" name="email" id="e_required" value="'. utf8_encode($rcs_user->email).'">
</div>
</div>';
$response.= '<div class="section">
<label>Permissões<small>Seleccione o tipo de utilizador </small></label>
<div>
<select class="medium" name="role">
'.$role.'
</select>
</div>
</div>
<div class="section">
<label>Activo<small>Activar utilizador</small></label>
<div>
'.$activo.'
<span class="f_help">ON/OFF </span>
</div>
</div>
<div class="section last">
<div>
<a id="commit-changes" class="uibutton submit_form" name="submit" >Gravar</a><a class="uibutton special" onClick="ResetForm()" title="Limpar Formulário" >Limpar Formulário</a>
</div>
</div>
</fieldset></form>';
И тогда обработка на стороне сервера PHP
$response='';
$id_user = $_POST['user_id'];
$name = utf8_encode($_POST['nome']);
$email = utf8_encode($_POST['email']);
$permitions = $_POST['role'];
if(!isset($_POST['activo']))
{
$active = 0;
}
else
{
$active = 1;
}
$user = new Users();
try
{
$user->updateUsers($name, $email, $permitions, $active, $id_user);
$response = "SUCESSO";
}
catch (Exception $e)
{
$response = "ERRO".$e->getMessage();
}
echo $response;
Рад за всю помощь я могу получить
Вы проверили firebug? 404 происходит для вызова сервера? – Hardik
Wierd, но firebug, похоже, даже не реконструирует метод –
@hardik, если я заменю '$ ('# commit-changes'). Click (function()' с 'function doUpdate()', а затем назовите его нажатием , это работает! Тем не менее, обратный вызов ошибки называется ... –