Maison > Questions et réponses > le corps du texte
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 !
黄舟2017-05-16 13:01:35
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'] )
phpcn_u15822017-05-16 13:01:35
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 erreur
PHP中文网2017-05-16 13:01:35
Je 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.
if(query_sql($sql)){
//echo "ok!";
$r['code']=0;
$r['msg']='ok!';
}else{
//echo "新增成功!";
$r['code']=1;
$r['msg']='新增成功!';
}
exit(json_encode($r));
PHPz2017-05-16 13:01:35
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.
漂亮男人2017-05-16 13:01:35
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