Мне нужно обновить строку в базе данных по идентификатору с помощью Ajax.Отправка данных через Ajax из формы
Моя форма:
<form id="update_ajax">
<input type="text" name="name" class="test_hide">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
<input type="submit" value="<?php echo $row['id']; ?>" class="pure-button">
</form>
Мой Ajax функции:
$("#update_ajax").on("submit", function() {
var id = $(this).attr('id');
var name = $(this).attr('name');
var dataall={'id' : id, 'name' : name};
$.ajax({
type: "post",
url: "update.php",
data: dataall,
success: function (data) {
alert(data);
}
});
});
И мой файл РНР:
if ((isset($_GET['id'])) && (isset($_GET['name']))) {
$id = $_GET['id'];
$name = $_GET['name'];
}else{
die("Not set");
}
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "8169x5it");
$query = $pdo->prepare("UPDATE test SET name=:name WHERE id=:id");
$query->bindParam(':name', $name);
$query->bindParam(':id', $id);
$query->execute();
И У меня ошибка, что значение name
не установлено в $_GET['name']
. И я не понимаю, почему он не установлен. Потому что я отправляю его в данные.
'var id = $ (this) .attr ('id');' это неверно [см. Docs] (http://api.jquery.com/val/) – NDM
'$ (this) .attr ('name') 'будет undefined, потому что форма не имеет атрибута' name'. Вы хотите '$ (" input [name = name] "). Val()'. – Barmar