Enregistrement AJAX assez aléatoire ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Enregistrement AJAX assez aléatoire ?

Re: Enregistrement AJAX assez aléatoire ?

par @rthur » 20 nov. 2017, 00:35

Bonjour,

Si tu fait des retours à la ligne via un textarea, alors ils seront enregistrés mais sous la forme de nouvelle ligne au format texte (et non HTML) : \r\n
Si tu veux les transformer ces retours à la ligne en balise <br> pour les afficher en HTML, alors PHP a une fonction pour ça, qui s'appelle nl2br : https://php.net/nl2br

Enregistrement AJAX assez aléatoire ?

par wwwbillgates » 18 nov. 2017, 12:03

Bonjour, j'utilise pour la première fois de l'Ajax pour éditer du contenu texte car le principe d'enregistrer en arrière plan me semble génial. Cependant, je rencontre 2 problèmes :

- Les retour à la lignes (touche "entrée") ne sont pas enregistrés dans ma BDD (ils sont pourtant bien enregistrés via un textarea sans passé par Ajax).

- Je ne sais pour qu'elle raison l'enregistrement dans ma BDD à l'air assez aléatoire, principalement sur Chrome, il doit certainement y avoir un problème dans mon code.

HTML
<span contenteditable="true" table_bdd="nom_de_ma_table" champ_bdd="nom_du_champ" id_bdd="id" >Texte éditable</span>

JS

$(document).ready(function() 
{  
 $("span").click(function()  
  { 
   if( $(this).attr("contenteditable") == "true") 
   {    

	 
	var contenu_avant = $(this).text(); 
				var id_bdd = $(this).attr("id_bdd"); 
				var champ_bdd = $(this).attr("champ_bdd"); 
				var table_bdd = $(this).attr("table_bdd"); 

				 
	$(this).blur(function() 
		{ 
		 var contenu_apres = $(this).text(); 

		 
								 if (contenu_avant != contenu_apres) 
									 { 
		  parametre='id_bdd='+id_bdd+'&champ_bdd='+champ_bdd+'&table_bdd='+table_bdd+'&contenu='+contenu_apres ; 

		  $.ajax({ 
			url: "../../test/enregistrement.php",  
			type: "POST",  
			data: parametre,  
			success: function(html) {  
			
				  } 
		   }); 
		  } 
		  
		}); 
	 
   };
			 
  });
});


PHP (enregistrement.php)
$table_bdd = $_POST["table_bdd"];
$champ_bdd = $_POST["champ_bdd"];
$id_bdd = $_POST["id_bdd"];
$contenu = utf8_decode($_POST["contenu"]);
 
   
$modifs_ajax = $bdd->prepare("
				UPDATE " . $table_bdd . "
				SET	" . $champ_bdd . " = :contenu 
				WHERE id = :id_bdd
				");
$modifs_ajax->execute(array(
					'contenu' => $contenu,
					'id_bdd' => $id_bdd
				));