私はmysql DBに 'cars'と 'address'という2つのテーブルを持っています。車を持っており、それは良いです。 DB内のアドレスには、 'street'、 'number'、 'city'の列があります。私は車がないすべての場所を削除したいが、私はどこでコードが間違っているのかわからない、それは動作しません。私はすべてのパスをチェックし、すべてが大丈夫です。どんな提案も感謝します。jquery、ajax、PDOを使って行を削除する方法
これは私のモーダル削除ボタンです:
<a href="#" data-toggle="modal" data-target="#delete_loc<?php echo $value['id']?>" role="button" class="btn btn-danger btn-sm">
<i class="fa fa-trash-o"></i> Delete
</a>
<div class="modal fade" id="delete_loc<?php echo $value['id']?>" tabindex="-1" role="dialog" aria-labelledby="mydelModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content" style="text-align:center;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h2 class="modal-title" id="mydelModalLabel" style="color:#a80b27;text-transform:uppercase;font-size:1.6rem;">Warning !</h2>
</div>
<div class="modal-body">
<h5>Are you shure you want delete address ID <b><?php echo $value['id']?></b>?</h5>
</div>
<div class="modal-footer">
<input type="hidden" name="loc_id" id="loc_id" value="<?php echo $value['id']?>">
<a href="" role="button" class="btn btn-danger" id="del_loc">
Yes, I'm shure!
</a>
<button type="button" class="btn btn-default" data-dismiss="modal">No</button>
</div>
</div>
</div>
</div>
これでjQueryとAJAX:
$(document).ready(function() {
$('#del_loc').bind('click',function(e){
e.preventDefault();
var id = $('#loc_id').val();
var data = 'loc_id='+id;
$.ajax({
type: "POST",
url: "include/locations/delete.php",
data: data,
success: function(result){
if(result == 1){
window.location.replace("address.php?id=");
}
else{
err_msg = JSON.parse(result);
if(err_msg.nAddress){
$('.panel-footer').append('<span class="help-block" style="float:right;"><strong>'+err_msg.nAddress+'</strong></span>');
}
}
}
});
});
});
これはdelete.phpです:
<?php
require '../../config/init.php';
require '../functions/locations.php';
require '../services/xss.php';
$loc_id = _e($_POST['loc_id']);
$data = deleteLoc($loc_id);
if(is_array($data)){
print_r(1);
}
else{
echo $data;
}
?>
そして、これが関数の名前の場所です.php:
function deleteLoc($loc_id){
global $conn;
try{
$stmt = $conn->prepare('DELETE FROM address WHERE id=:id');
$stmt->bindParam(':id',$loc_id);
$stmt->execute();
$row[] = 'deleted';
return $row;
}
catch(PDOException $e){
if(DEBUG === true){
header('Location:../../error/db_error.php?err_msg='.$e->getMessage());
}
else{
header('Location:../../error/db_error.php?err_msg');
}
}
}
代わりに削除ハードの削除ソフトを試してみてくださいPHP ..さんは試す
はJavaScript
をしてみましょう。このようにしてMySql.Addから削除する際に矛盾は生じません。データ型tinyintで削除されたテーブルの列を追加し、削除ボタンで削除されたフラグを1に設定します。 –
あなたは* cars *しかし、あなたのSQLは単純に '' DELETE FROM address WHERE id =:id''です。これは 'address'テーブルから1行だけを削除します(' id'は主キーです)。あなたのコードは、車がない場所をすべて削除しなければならないことを示唆していません。* – DelightedD0D
@KunalGadhiaあなたが何を言おうとしているのかわかりません。ソフト削除の使用はこの質問にどのように関連していますか? – DelightedD0D