J'ai besoin de stocker la variable de la chaîne JSON avec nom "msg" dans ma base de données, mais je ne suis pas capable de l'attraper avec $ msg = $ _post ["msg ']; Comment puis-je l'attraper correctement?
J'aimerais faire écho le contenu de $ msg immédiatement sur la page Web. P>
$msg = $_POST['msg']; // echo $msg; $author = $_POST['author']; $email = $_POST['email']; $url = $_POST['url']; $city = $_POST['city']; // include ("/home/sionvalais/domains/skiweather.eu/public_html/v3/functions/strip.php"); if ($cam_id>1) { if ($author=='NAME') { $author='Anonymous'; } $host = gethostbyaddr($ip); // mysql_query ("set character_set_results='utf8'"); mysql_query("INSERT INTO sv_review (author,email,msg,cam_id,url,lud) VALUES ( N'".$author."', '".$email."', N'".$msg."', '".$cam_id."', '".$url."', NOW() )"); }
6 Réponses :
$ post ['msg'] doit être $ _Post ['msg']
également pour émettre vos variables de poste afin que vous puissiez les inspecter utiliser: p>
echo print_r($_POST);
Quel est le point de echo print_r ($ var) code> print_r imprime par défaut, sauf si vous définissez print_r ($ var, true);
Essayez cette modification - }); p> p>
Qu'en est-il de cette fonction $ ("# AddCommENTMorm"). Soumettre (fonction () {... ...}) au lieu de .Click fonction?
Aussi loin que je sache, la valeur par défaut de mais il semble que les données code> code> que vous envoyez au serveur n'est pas un objet JSON, réglage donc, si et s'il s'agit d'un type de JSON valide, décodez l'objet JSON publié sur le serveur, en utilisant: Vous pouvez suivre l'approche ci-dessous pour obtenir l'objet JSON sur le serveur: P> contenttype code> est
"application / x-www-form-urlencoded; charset = uf-8" code>, qui va bien pour la plupart des cas.
contenttype code> ne convertit pas les données en objet JSON, il Déclare le type de données. p>
Data code> est juste une série de paires de noms / valeur, veuillez supprimer
contentType: "Application / JSON", CODE > et réessayez à nouveau. p>
$ array = json_decode ($ JSON, vrai); code> P>
Accéder à l'objet JSON H1>
$json = @file_get_contents('php://input');
$array = json_decode($json, true);
// See what happens
print_r($array);
Ceci est incorrect, DataType: 'JSON' code> fait référence aux données de réponse, pas à ce que vous envoyez. Il dit à JQuery de décoder automatiquement le JSON reçu, rien à voir avec ce que vous envoyez du serveur client->. C'est la même chose que faire
$. Getjson () code>. Le type de contenu est ce qui fait référence aux données envoyées.
@shariff j'apprécierai si vous expliquez votre raison
Beacuse Ce n'est pas la question de la question.Le problème est l'envoi de données postales au serveur. Et je sais que vous pouvez obtenir la variable de formulaire dans le serveur si la méthode est «mettre» comme ça. Elle a utilisé la méthode postale.So est-ce qu'il peut toujours faire comme le vôtre. Je ne sais pas Xactly.
@shariif, ce que j'ai dit à la première est que je ne pense pas data: $ ("# addCommentform"). Serialize () code> pourrait être un objet JSON valide, il semble être une paire sérialisée de Nom / valeurs.
Il n'est pas nécessaire de ne pas être aussi parce que le type de données: JSON signifie le type de données de réponse non les données sérialisées qu'il envoie .thanx @hashemqolami
@shariif Tout d'abord, je n'ai pas voulu dire DataType code>, comme @MRCode dit,
DataType code> fait référence aux données de réponse que vous attribuez une mauvaise valeur (dans votre anwser). . Deuxièmement,
PHP: // entrée code> nous permet de lire des données de poste brutes, c'est une alternative de
$ http_raw_post_data code>.
.Serialiser forme une chaîne de requête pouvant être envoyée à un serveur. Il ne crée pas de JSON, faire une alerte de
$ ("# addCommentform"). Serialize () Code>
vous devriez voir une chaîne de requête et non un Json alors retirez le réglage.
contentType: "Application / JSON" code>,
à partir de
$. Ajax code>
et vous devriez être capable d'obtenir le msg dans
$ _ post ['msg'] code> dans php p>
Est-ce que vous ne pouvez pas obtenir $ _Post ['msg'] et tous les autres champs tels que l'auteur, le courrier électronique, l'URL ..vous êtes capable de recevoir de $ _Post?
Utiliser doit limiter les données à JSON: JSON.Stringify ($ ("# AddCommentForm"). Serializarray ()) code>.
$ ("# addCommentform"). Serialize () code> ne fait pas JSON. P>
D'accord. Fait. Mais je ne passe pas du côté serveur.
Ne pas utiliser: Ceci est un post, une rigueur? Donc, il utilisera: p> ou p> ou simplement pour simplifier n'utilisez personne.
Supprimer tout contentType: "JSON" code>
contenttype code> ou
DataType code>, jQuery choisissez-en une par défaut, car le type est post. P> p>
Eh bien, c'est charmant. Quelle est votre question cependant?
Qu'est-ce qui est écrit sur votre insertion.php? /
ce serait $ msg = $ _post ['msg'];
Pour plus de clairance, montrez votre code HTML et PHP
Veuillez ne pas utiliser
mySQL _ * code> Fonctions
dans le nouveau code. Ils ne sont plus conservés et sont officiellement obsolète . Voir la boîte rouge? En savoir plus sur les déclarations préparées à la place et utilisez PDO ou mysqli .