簡體   English   中英

通過Ajax更新用戶個人資料

[英]user profile update via ajax

嗨,大家好,我試圖通過ajax更新用戶詳細信息,但是它沒有更新我的用戶表,只是在擁有時停止執行...出現在這里是我的代碼,請盡可能提供幫助

edit_profile.php

<?php
if(isset($_POST["la"])){
$firstname = strip_tags(preg_replace('#[^a-z0-9]#i', '', $_POST['fi']));
    $lastname = strip_tags(preg_replace('#[^a-z]#', '', $_POST['la']));
    $age = strip_tags(preg_replace('#[0-9]#', '', $_POST['ag']));
    $gender = strip_tags(preg_replace('#[^a-z]#', '', $_POST['g']));

  // FORM DATA ERROR HANDLING
    if($gender == "" || $firsname == "" || $lastname == "" || $age == ""){
        echo "some account info is empty.";
        exit();
        }else{
      $sql = "UPDATE users SET gender='$gender', age='$age', lastname='$lastname, firstname='$firstname' WHERE username='$log_username' LIMIT 1";


     $query = mysqli_query($db_conx, $sql); 
echo "account_success";
        exit();

    }

    }
?>

Ajax和js

<script type="text/javascript" language="javascript">
function _(x){
    return document.getElementById(x);
}
function toggleElement(x){
    var x = _(x);
    if(x.style.display == 'block'){
        x.style.display = 'none';
    }else{
        x.style.display = 'block';
    }
}

function restrict(elem){
    var tf = _(elem);
    var rx = new RegExp;
    if(elem == "firstname"){
        rx = /[^a-z0-9]/gi;
    } else if(elem == "lastname"){
        rx = /[^a-z0-9]/gi;
        } 
    tf.value = tf.value.replace(rx, "");
}
function emptyElement(x){
    _(x).innerHTML = "";
}
function ajaxObj( meth, url ) {
    var x = new XMLHttpRequest();
    x.open( meth, url, true );
    x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    return x;
}
function ajaxReturn(x){
    if(x.readyState == 4 && x.status == 200){
        return true;    
    }
}
function update_profile() {
    var fi = _("firstname").value;
    var la = _("lastname").value;
    var g = _("gender").value;
    var ag = _("age").value;
    var status2 = _("status_profile");
    if(fi == "" || la == "" || ag == "" || g == ""){
        status2.innerHTML = "Fill out all of the form data";
        status2.style.color = "red";
    }else {
        _("profilebtn").style.display = "none";
        status2.innerHTML = 'processing ...';
        var ajax = ajaxObj("POST", "edit_profile.php");
        ajax.onreadystatechange = function() {
            if(ajaxReturn(ajax) == true) {
                if(ajax.responseText != "account_success"){

                    _("profilebtn").style.display = "block";
                } 
            }
        }
        ajax.send("&fi="+fi+"&la="+la+"&g="+g+"&ag="+ag);   
    }
}
</script>

HTML

 <div class="row profile-classic">
<div class="col-md-12 m-t-20">
<form name="updateform" id="updateform" onsubmit="return false;">
<div id="profile_form" class="panel">
 <div class="panel-title line">
 <div class="caption"><i class="fa fa-phone c-gray m-r-10"></i>ACCOUNT</div>
 </div>
 <div class="panel-body">

 <div class="row">
<div class="control-label c-gray col-md-3">Username:</div>
<div class="col-md-6">
 <input type="text" class="form-control"  value="<?php echo $uname; ?>" disabled="disabled">
   </div>
   </div><br />
 <div class="row">
 <div class="control-label c-gray col-md-3">Firstname: *</div>
<div class="col-md-6">
<input type="text" onfocus="emptyElement('status_profile')" class="form-control" id="firstname" contenteditable="true" value="<?php echo $firstname; ?>">
 </div>
  </div><br />
 <div class="row">
  <div class="control-label c-gray col-md-3">Lastname: *</div> 
<div class="col-md-6">
 <input type="text" onfocus="emptyElement('status_profile')" class="form-control" id="lastname" placeholder="your lastname" value="<?php echo $lastname; ?>" >
 </div>
</div><br />

 <div class="row">
 <div class="control-label c-gray col-md-3">Age: *</div> 
<div class="col-md-6">
 <input type="text" onfocus="emptyElement('status_profile')" class="form-control" id="age" value="<?php echo $age; ?>">
</div>
 </div><br />
<div class="row">
 <div class="col-md-6">
<select class="form-control"  onfocus="emptyElement('status_profile')" id="gender" class="form-control">
<option value="<?php echo $gender; ?>"><?php echo $sex; ?></option>
<option value="m">Male</option>
 <option value="f">Female</option>

 </select>
 </div>
<button id="profilebtn" onclick="update_profile()" class="btn btn-sm btn-default"><i class="fa fa-floppy-o"></i> Save</button><span id="status_profile"></span>


</div><br />
  </div>
 </div></form>

</div></div>

您可以使用mysqli_error($db_conx)來確定錯誤是什么...只是讓您的JavaScript為您很好地顯示它即可。

而且-您的WHERE子句( $log_username )中的變量未定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM