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>
私の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);
}
});
});
そして、私の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 = $(これ).attr( 'id');'それは正しくありません[docs]を参照してください(http://api.jquery.com/val/) – NDM
'$(this).attr( 'name') 'は' name'属性を持たないため、未定義です。 '$(" input [name = name] ")。val()'が必要です。 – Barmar