Ajax를 사용하여 ID로 데이터베이스의 행을 업데이트해야합니다.양식에서 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>
내 아약스 기능 :
$("#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);
}
});
});
그리고 내 PHP 파일은 다음과 같습니다
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')'형식은'name' 속성이 없기 때문에 정의되지 않습니다. '$ ("input [name = name]") .val()'을 원한다. – Barmar