ajax表单不更新值 [英] ajax form not updating values

查看:93
本文介绍了ajax表单不更新值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有更新db的用户信息的表单。然而,这个功能不适用于ajax(使用简单的提交刷新)。

这将形式序列化的数据发送到服务器
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

  $ 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 =checkboxname =activo class =on_off_checkboxvalue =1/>';



$ activo ='< input type =checkboxname =activoclass =on_off_checkboxchecked =checkedvalue =1 />';
}


$ response ='';

$ response。='< form id =validationaction =method =post>
< fieldset>
< input type =hiddenname =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 = 文本 类= 验证[需要,定制[onlyLetterSp]]大的 名称= 诺姆 ID = f_required 值=函数utf8_encode($ rcs_user->诺姆) '。>
< / div>
< / div>';
$ response。='< div class =section>
< label>电子邮件< small> Insira o seu电子邮件< / small>< / label>
< div>
< input type =textclass =validate [required,custom [email]] largename =emailid =e_requiredvalue ='。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 =mediumname =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>
将一个ID = 提交-变化 类= 的UIButton submit_form 名称= 提交 > Gravar< / A><类别= UIButton的特殊 的onClick = ResetForm() 标题= LimparFormulário> LimparFormulá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();

尝试
{
$ user-> updateUsers($ name,$ email,$ permitions,$ active,$ id_user);
$ response =SUCESSO;
}
catch(Exception $ e)
{
$ response =ERRO。$ e-> getMessage();
}

echo $ response;

很高兴为您提供所有帮助

updateUsers 函数中(在Users类中),尝试更新字段 nome 名称



假设您只使用 nome 正确?


I've got this form that updates user information on db. However, this functionality is not working with ajax (works with a simple submit with refresh).

This postes form serialized data to the server 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");
                }

            });
           });               
        });

Here's the HTML that outputs the markup 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>';

And then the server side processing 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;

Glad for all the help I can get

解决方案

In the updateUsers function (in Users class) you try to update the field nome or name ?

You are suppose to use nome only right?

这篇关于ajax表单不更新值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆