Php ajax表单不更新值
我有一个更新数据库用户信息的表单。但是,此功能不适用于ajax(适用于带有刷新的简单提交) 此操作将表单序列化数据发布到服务器 jQueryPhp ajax表单不更新值,php,html,jquery,Php,Html,Jquery,我有一个更新数据库用户信息的表单。但是,此功能不适用于ajax(适用于带有刷新的简单提交) 此操作将表单序列化数据发布到服务器 jQuery $('#commit-changes').click(function(){ $('#validation').submit(function(){ $.ajax({ type: "POST", data:
$('#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>';
很高兴从一开始我就得到了所有帮助,看起来您不会等到文档加载完毕后再绑定事件处理程序。这意味着,当您尝试添加.click事件处理程序时,提交更改甚至不存在 要在jQuery中解决此问题,请将其包装在整个代码中:
$(document).ready(function(){
// do stuff
});
此函数向jQuery的document.ready处理程序发送回调,以便所有代码仅在加载页面后执行。删除.submit()函数。像这样的
$.post("modules/user/updateuser.php",{data:$("#validation").serialize()},function(response){
$("#response-update").html(response);
});
在php端,尝试print\r($\u POST['data'])编码>并请发布输出。在updateUsers函数(在用户类中)中,您尝试更新字段nome或name
您应该只使用nome对吗?是的,它存在,尽管我已经使用了从服务器推送HTML数据的代码。但是,没有发生任何事情。。。新记录未保存。打印时未收到响应。是否检查了firebug?404是为服务器调用而发生的吗?Wierd,但firebug似乎甚至没有识别出method@hardik,如果我替换$(“#提交更改”)。单击(function()
,使用函数更新()
,然后单击调用它,它就工作了!但是,错误回调被调用…不。我正在一次更新表单中的所有字段。您是否有可能将代码放入JSFIDLE?或者给出开发url,以便我们检查您页面中实际发生的情况。
$.post("modules/user/updateuser.php",{data:$("#validation").serialize()},function(response){
$("#response-update").html(response);
});