これはなぜ機能しませんか?ajaxを使用したデータベース更新は機能しません
<form id='formprofile' autocomplete='off'>
<input type='text' name='name' value='<?php echo $row['name'];?>'>
<input type='text' name='sname' value='<?php echo $row['sname'];?>'>
<button type='button' id='btnsave'>Save</button>
</form>
javascriptの
$('#btnsave').click(function(){
$.ajax({
url: 'profilesave.php',
type: 'post',
data: $('#formprofile').serialize(),
success: function(data) {
if (data =='empty'){
alert ('something is missing!');
}
else{
alert ('profile saved');
location.href = 'index.php';
}
}
});
});
profilesave.php
extract($_POST);
if ($name == ''){
echo ('empty');
exit();
}
try {
$stmt = $db->prepare('UPDATE members SET name = :name, sname = :sname WHERE user = :"' . $user . '"');
$stmt->execute(array(
":name" => $name,
":sname" => $sname
));
}
catch(PDOException $e) {
echo $e->getMessage();
}
データベースが更新されません。
変数$user
がテストされています。存在し、プロッパ値を持っています。
データベースが更新されていません。
変数$user
がテストされています。存在し、プロッパ値を持っています。
'WHERE user =:" '。$ user。' "' ??なぜそれをし、 ':name'や':sname'のような名前付きパラメータとして持っていないのですか? – RamRaider
'profilesave.php'スクリプトの' $ user'変数はどこにありますか? – RamRaider
@RamRaider、コードの先頭にある別のインクルードファイルから来ています。それはテストされ、存在し、プロッパーの価値を持っています。 – bonaca