Saya membuat jadual untuk menambah, memadam, mengubah suai dan membuat pertanyaan Terdapat banyak data baharu yang saya gunakan sekarang. Hantarkannya ke php dalam bentuk parameter yang dilampirkan, dan kemudian php menggunakan $_GET[''] untuk menerima parameter yang diluluskan. Ini adalah cara untuk menambah data baru Apa yang saya ingin tanyakan ialah, jika terdapat banyak data baharu, bagaimanakah PHP menerima parameter yang diluluskan oleh parsing?
Ini kod saya?
php:
//新增方法
function add_row(){
/*获取从客户端传过来的数据*/
$userName = $_GET['user_name'];
$userAge = $_GET['user_age'];
$userSex = $_GET['user_sex'];
$sql = "INSERT INTO t_users (user_name,user_age,user_sex) VALUES ('$userName','$userAge','$userSex')";
if(query_sql($sql)){
echo "ok!";
}else{
echo "新增成功!";
}
}
function query_sql(){
$mysqli = new mysqli("127.0.0.1", "root", "root", "crud");
$sqls = func_get_args();
foreach($sqls as $s){
$query = $mysqli->query($s);
}
$mysqli->close();
return $query;
}
js:
$(function() {
$('#save').click(function(){
addData();
});
});
function addData(){
var userName = $('#userName').val();
var userAge = $("#userAge").val();
var userSex = $('#user-sex').val() == '0' ? '男' : '女';
var addUrl = "./php/data.php?action=add_row&user_name=" + userName + "&user_age=" + userAge + "&user_sex=" + userSex;
$.ajax({
type:"post",
url:addUrl,
dataType:'json',
contentType:'application/json;charset=utf-8',
success:function(data){
console.log("success");
},
error:function(data){
console.log("data");
//添加成功后隐蒧modal框并重新加载页面
setTimeout(function(){
$('#exampleModal').modal('hide');
},500);
setTimeout(function(){
//新增成功后,重新加载数据
searchData();
},700);
}
});
}
Anda mungkin tidak memahami perkara yang ditulis di atas. Apa yang saya ingin nyatakan ialah jika kod PHP kekal tidak berubah, semua yang berubah adalah organisasi data baharu dalam kaedah JS ini yang perlu dikemas kini, Dengan cara ini, saya menyusun berbilang keping data ini ke dalam objek dan menghuraikan objek ke dalam rentetan dan menyerahkannya kepada php. Jadi bagaimana php ini menghuraikan data?
function addData(){
var userName = $('#userName').val();
var userAge = $("#userAge").val();
var userSex = $('#user-sex').val() == '0' ? '男' : '女';
/*var addUrl = "./php/data.php?action=add_row&user_name=" + userName + "&user_age=" + userAge + "&user_sex=" + userSex;*/
var addUrl = "./php/data.php?action=add_row";
var addData = {
'user_name':userName,
'user_age':userAge,
'user_sex':userSex
};
var jsonData = JSON.stringify(addData);
$.ajax({
type:"post",
url:addUrl,
data:jsonData,//传给php
dataType:'json',
contentType:'application/json;charset=utf-8',
success:function(data){
console.log("success");
},
error:function(data){
console.log("data");
//添加成功后隐蒧modal框并重新加载页面
setTimeout(function(){
$('#exampleModal').modal('hide');
},500);
setTimeout(function(){
searchData();
},700);
}
});
}
Sila berikan saya beberapa jawapan, terima kasih banyak!
Untuk operasi baharu, gunakan kaedah POST Ajax menghantar data json(a:'',b:'',c:''}) dan selepas php menerimanya, jsondecode($_POST['data'] )
Letakkan semua parameter dalam nombor json dan hantar ke latar belakang:
{'username': xxx, 'age': xxx}
, mengikut komen dan logik kod anda, kod tersebut harus ditulis dengan berjaya dan bukannya ralatSaya tidak faham apa yang anda katakan Ajax mengembalikannya terus selepas menerimanya, dan lalai anda ialah dataType:'json', yang bermaksud bahawa selagi data yang dikembalikan dalam php tidak dalam format json, ralat akan berlaku. dilaporkan. Lihat di atas //echo "Tambah berjaya!"; Ini secara langsung akan menyebabkan anda melaporkan ralat ajax.
Syarat untuk berjaya ialah (xmlHttp.readyState == 4) && (xmlHttp.status == 200)
Lihat sama ada kod status yang dikembalikan oleh alamat yang anda minta ialah 200?
Jika terdapat banyak parameter, anda boleh terus menetapkan $_GET kepada pembolehubah, kerana $_GET ialah tatasusunan.
Terima tatasusunan $_GET dan kemudian lintasi
Gunakan
POST
1. Kaedah penyerahan ajax ialah teyp: "post", tetapi parameter yang diterima oleh php ialah $_GET
2 Format data yang diterima oleh ajax ialah dataType: 'json', tetapi hasil yang dikembalikan oleh php ialah teks.
3.ajax request format kandungan contentType:'application/json;charset=utf-8', data yang diminta mestilah rentetan json Jika anda menggunakan php untuk menerimanya di latar belakang, anda boleh menggunakan $data = file_get_contents(" php://input "); json_decode($data, true), iaitu parameter permintaan. (Empat Jenis Kandungan Biasa dalam HttpRequest (pemindahan))
4.sql perlu dilindungi daripada suntikan