У меня есть форма, которую можно редактировать пользователем. Я хочу, чтобы форма обновлялась без перезагрузки страницы с помощью Ajax. Новые значения заменят старые значения. Для полей ввода im считывание значений из запроса php SQL. Таким образом, пользователь сможет увидеть детали с первого взгляда. Проблема в том, когда этот код работает, не получая никакой ошибки и никакого результата. Я попробовал console.log.Обновить поля формы с AJAX и PHP
Я получаю значение пользователей из цикла while.
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 код:
<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>
Форма Я хочу, чтобы иметь возможность редактировать без перезагрузки страницы.
<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>
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);
}
где эта функция 'confirm()' и что она делает? –
[Маленький Бобби] (http://bobby-tables.com/) говорит *** [ваш скрипт подвержен риску инъекций SQL.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php) *** Узнайте о [подготовленных] (http://en.wikipedia.org/wiki/Prepared_statement) операторах для [MySQLi] (http://php.net/manual /en/mysqli.quickstart.prepared-statements.php). Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! [Не верю?] (Http://stackoverflow.com/q/38297105/1011527) –
Привет, Фред - теперь я получил ответ от ajax. Но запрос update.php не работает. Функция confirm() - это функция i, созданная в functions.php. Ничего общего с этим. Не беспокойтесь об этом. – steven