J'ai créé un tableau pour ajouter, supprimer, modifier et interroger. Il y a de nombreuses nouvelles données que j'utilise maintenant dans l'URL. Transmettez-le à php sous la forme de paramètres ajoutés, puis php utilise $_GET[''] pour recevoir les paramètres transmis. C'est une façon d'ajouter de nouvelles données. Ce que je veux demander, c'est, s'il y a beaucoup de nouvelles données, comment PHP reçoit-il les paramètres passés par l'analyse ?
Voici mon code ?
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);
}
});
}
Vous ne comprenez peut-être pas ce qui est écrit ci-dessus. Ce que je veux exprimer, c'est que si le code PHP reste inchangé, tout ce qui change, c'est la nouvelle organisation des données dans cette méthode de JS s'il y a plusieurs éléments de données. qui doivent être mis à jour. À propos, j'ai organisé ces multiples éléments de données en un objet, j'ai analysé l'objet en une chaîne et je l'ai transmis à php. Alors, comment ce php analyse-t-il les données ?
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);
}
});
}
S'il vous plaît, donnez-moi quelques réponses, merci beaucoup !
Pour les nouvelles opérations, utilisez la méthode POST. Ajax envoie les données json(data:{a:'',b:'',c:''}), et après que php les ait reçues, jsondecode($_POST['data'] )
Mettez tous les paramètres dans un numéro json et passez-le en arrière-plan :
{'username': xxx, 'age': xxx}
, selon les commentaires et la logique de votre code, ces codes doivent être écrits avec succès plutôt qu'avec erreurJe ne comprends pas ce que vous dites. Ajax le renvoie directement après l'avoir reçu, et votre valeur par défaut est dataType:'json', ce qui signifie que tant que les données renvoyées en php ne sont pas au format json, une erreur sera signalé. Jetez un œil à ce qui précède //echo "Ajouter avec succès!"; Cela vous amènera directement à signaler une erreur ajax.
Les conditions de succès sont (xmlHttp.readyState == 4) && (xmlHttp.status == 200)
Voyez si le code d'état renvoyé par l'adresse que vous avez demandée est 200 ?
S'il y a beaucoup de paramètres, vous pouvez directement affecter $_GET à une variable, car $_GET est un tableau.
Recevez le tableau $_GET puis parcourez
Utilisez
POST
1. La méthode de soumission ajax est teyp : "post", mais le paramètre reçu par php est $_GET
2 Le format de données reçu par ajax est dataType : 'json', mais le résultat renvoyé par php est du texte.
3.Ajax demande le format de contenu contentType:'application/json;charset=utf-8', les données demandées doivent être une chaîne json si vous utilisez php pour les recevoir en arrière-plan, vous pouvez utiliser $data = file_get_contents(" php://input "); json_decode($data, true), qui est le paramètre de requête. (Quatre types de contenu courants dans HttpRequest (transfer))
4.sql doit être protégé contre l'injection