I have a form that can be edited by a user. I want the form to update without page reload using Ajax. The new values will replace the old values. For the input fields im reading in the values from a php SQL query. So the user will be able to see there details at first sight. The problem is when this code runs im getting no error and no result. I have tried console.log.
I'm getting the users value from the while loop.
if(isset($_GET['edit_user'])){
$the_user_id = $_GET['edit_user'];
$query = "SELECT * FROM users WHERE user_id = $the_user_id ";
$select_users_query = mysqli_query($connection,$query);
while($row = mysqli_fetch_assoc($select_users_query)) {
$user_id = $row['user_id'];
$user_firstname = $row['first_name'];
$user_lastname = $row['last_name'];
$user_contact = $row['mobile'];
$_SESSION["id"] = $user_id;
}
}
Ajax code:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#update').click(function(){
var user_id = $("#user_id").val();
var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
var contact = $("#mob").val();
var dataString = 'firstname='+firstname + 'lastname='+lastname + 'contact='+contact+'user_id='+user_id;
if(firstname=='' || lastname=='' || contact=='') {
alert("Please fill all fields");
} else {
$.ajax({
type: "POST",
url: "update.php",
data: dataString,
cache: false,
success: function(html){
alert(html);
}
});
}
return false;
});
});
</script>
The form I want to be able to edit without page reloading.
<form method="post" name="form">
<div style="position:relative; left:120px;">
<p>Title: <select><option value="Mr">Mr</option> <option value="Mrs">Mrs</option><option value="Miss">Miss</option><option value="Ms">Ms</option><option value="Dr">Dr</option></select></p>
<p>First name *: <input type="text" id="firstname" name="firstname" value="<?php echo $user_firstname; ?>" style="width:50%;"></p>
<p>Last name *: <input type="text" id="lastname" name="lastname" value="<?php echo $user_lastname; ?>" style="width:50%;"></p>
<p>Contact telephone number *: <input type="text" id="mob" name="contact" value="<?php echo $user_contact; ?>" style="width:50%;"></p>
<p><input type="hidden" id="user_id" name="user_id" value="<?php echo $_SESSION['user_id']; ?>" style="width:50%;"></p>
<button class="btn btn-primary btn-lg" id="update" name="update" role="navigation" type="submit" style="border-radius:0px;">Save & continue</button>
</div>
</form>
The update.php
<?php require_once("includes/db.php"); ?>
if(isset($_POST['update'])){
$firstname = mysqli_real_escape_string($_POST['firstname']);
$lastname = mysqli_real_escape_string($_POST['lastname']);
$contact = mysqli_real_escape_string($_POST['contact']);
$user_id = mysqli_real_escape_string($_POST['user_id']);
$query = "UPDATE users
SET first_name ='". $_POST['firstname'] . "',
last_name ='". $_POST['lastname'] . "',
mob ='". $_POST['contact'] . "'
WHERE
user_id = '". $_POST['user_id'] . "'";
$edit_user_query = mysqli_query($connection,$query);
}