Selepas mengklik butang padam, data yang dipilih hilang dari halaman Nampaknya telah dipadamkan, tetapi ia akan dipaparkan semula selepas menyegarkan semula data dalam jadual pangkalan data, sila tidak dipadamkan lihat data saya Apa yang salah dengan kod itu?
Tindakan penghalaan asal ialah parameter dalam url Ini ialah ralat $action dalam data.php Sekarang mesej ralat telah diubah suai, tetapi data masih tidak boleh dipadamkan daripada pangkalan data. Kain bulu? Bagaimanakah saya harus nyahpepijat kod dalam php?
Selepas pengubahsuaian:
php:
//Buat laluan Tindakan ialah parameter dalam url Ini ialah baris 6 $action dalam data.php.
$action = $_GET['action'];
suis($action) {
kes 'init_data_list':
init_data_list();
pecah;
kes 'tambah_baris':
add_row();
pecah;
kes 'del_row':
del_row();
pecah;
kes 'edit_row':
edit_row();
pecah;
}
//Padam kaedah, bagaimana saya menyahpepijat php dalam penyemak imbas? Bagaimanakah saya boleh melihat sama ada kaedah ini telah dilaksanakan?
fungsi del_row(){
//ujian
/*gema "ok!";*/
//Terima parameter yang dikembalikan
$rowId = $_GET['rowId'];
$sql = "padam daripada t_users di mana user_id='$rowId'";
if(query_sql($sql)){
echo "ok!";
}lain{
echo "Pemadaman gagal!";
}
}
Selepas pengubahsuaian:
Halaman hadapan JS:
var $table = $('#table'),
$remove = $('#remove');
$(fungsi() {
searchData();
delData();
});
fungsi delData() {
$remove.on('klik', function() {
if(confirm("Adakah anda mahu meneruskan pemadaman")) {
var rows = $.map($table.bootstrapTable('getSelections'), function(row) {
//Kembalikan nombor indeks baris yang dipilih
kembali row.user_id;
});
}
$.map($table.bootstrapTable('getSelections'),function(row){
var del_url = "./php/data.php";
//Padam data berdasarkan userId, kerana id ini ialah parameter yang dihantar ke pelayan
var rowId = row.user_id;
//Mengikut keperluan PHP, del_row perlu dihantar kembali untuk mengaktifkan kaedah pemadaman.
/*var dataParam = {
tindakan: "del_row",
rowId:rowId
};*/
$.ajax({
taip: "padam",
url:del_url + "?action=del_row&rowId=" + rowId,
dataType:"html",
contentType: 'application/json;charset=utf-8',
kejayaan: fungsi(data) {
$table.bootstrapTable('remove',{
medan: 'user_id',
nilai: baris
});
$remove.prop('disabled', true);
},
ralat:fungsi(data){
alert('Pemadaman gagal!');
}
});
});
})
}
Selepas pengubahsuaian:
Dilihat dalam Pengepala dalam Rangkaian, ia dipaparkan sebagai: 200
URL Permintaan:http://localhost/muke/php/data.php?action=del_row&rowId=1
Kaedah Permintaan: PADAM
Kod Status:200 OK
Alamat Jauh:[::1]:80
Parameter Rentetan Pertanyaan
tindakan:del_row
rowId:1
Pratonton dalam Rangkaian, mesej ralat asal ialah: tindakan dalam data.php pada baris 6
Tiada apa-apa sekarang, ia kosong
Lihat Respons dalam Rangkaian, mesej ralat asal ialah: tindakan dalam data.php pada baris 6
Tiada apa-apa sekarang, ia kosong
Menggunakan Rest Client untuk menguji, hasilnya ialah 200, tetapi data yang dikembalikan masih gagal padam! Ia benar-benar membunuh saya. Saya tidak dapat mengetahui apa yang salah dan mengapa ia tidak boleh dipadamkan dari maklumat pemulangan, kaedah del_row() dalam PHP mungkin tidak dilaksanakan, bukan?
< br>
Apakah yang perlu saya lakukan?
Laksanakan pernyataan SQL dalam pangkalan data: padam daripada t_users di mana user_id='1' Gesaan adalah bahawa pemadaman berjaya, tetapi pelaksanaan tidak berjaya pada halaman Adakah kerana parameter yang dihantar kembali tidak diterima.
< /p>
Untuk meringkaskan, terdapat 4 kesalahan di atas:
Parameter yang dikembalikan melalui pemadaman hanya boleh diperoleh menggunakan $_GET
padam Parameter yang dikembalikan mesti diletakkan dalam URL, bukan dalam badan;
php
Halaman JS bahagian hadapan:
Kaedah awam, log masuk ke pangkalan data:
Anda menyerahkan permintaan menggunakan kaedah padam, jadi bahagian belakang tidak boleh menerima parameter menggunakan $_GET dan $_POST.
Parameter padam hendaklah diletakkan dalam url:
Sepatutnya
$userId = $_POST['rowId'];
betulSedikit lagi
Cetak $_GET, sepatutnya parameter tidak lulus
Anda ambil
action
放在body里了,自然$_GET
就取不到action
了,要用$_POST
。看你都用了
DELETE
方式提交了,不如改成restful
...Adakah terdapat masalah dengan pernyataan sql? Cetaknya apabila program berjalan, salin ke pangkalan data dan jalankan ujian sekali.
Cetak pertama $_GET untuk melihat apa yang ada?
Tempat awak ini sangat pelik, cuba tukar dataType kepada json
Sebab ralat adalah kerana parameter tindakan tidak ditemui
Bagaimana dengan query_sql? Apa yang perlu digunakan?