Problème éditeur de news

Fermé
Oxyan Messages postés 695 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 2 juin 2011 - 17 avril 2009 à 12:35
Oxyan Messages postés 695 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 2 juin 2011 - 17 avril 2009 à 13:36
Bonjour, voila j'ai suivit un tuto et je vien de finir de créer un éditeur de news... problème il n'enregiste absolument rien dans la DB x_x, si j'édit une news le contenu de la news aparé dans le textarea je peux le modifier mais après si j'envoi le formulaire il n'enregistre rien il suprime meme le contenu de la news et je me retrouve avec seulement le titre : http://azote51.olympe-network.com

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="edit_news.css">
<title>Cr&eacute;ation d'un ins&eacute;reur de balises comme la zForm</title>
<script type="text/javascript">
<!--
function insertTag(startTag, endTag, textareaId, tagType) {
	var field = document.getElementById(textareaId);
	field.focus();
	
	if (window.ActiveXObject) {
		var textRange = document.selection.createRange();            
		var currentSelection = textRange.text;
	} else {
		var startSelection   = field.value.substring(0, field.selectionStart);
		var currentSelection = field.value.substring(field.selectionStart, field.selectionEnd);
		var endSelection     = field.value.substring(field.selectionEnd);
	}
	
	if (tagType) {
		switch (tagType) {
			case "lien":
					endTag = "</lien>";
					if (currentSelection) {
							if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
									var label = prompt("Quel est le libellé du lien ?") || "";
									startTag = "<lien url=\"" + currentSelection + "\">";
									currentSelection = label;
							} else {
									var URL = prompt("Quelle est l'url ?");
									startTag = "<lien url=\"" + URL + "\">";
							}
					} else {
							var URL = prompt("Quelle est l'url ?") || "";
							var label = prompt("Quel est le libellé du lien ?") || "";
							startTag = "<lien url=\"" + URL + "\">";
							currentSelection = label;                     
					}
			break;
			case "citation":
					endTag = "</citation>";
					if (currentSelection) {
							if (currentSelection.length > 30) {
									var auteur = prompt("Quel est l'auteur de la citation ?") || "";
									startTag = "<citation nom=\"" + auteur + "\">";
							} else {
									var citation = prompt("Quelle est la citation ?") || "";
									startTag = "<citation nom=\"" + currentSelection + "\">";
									currentSelection = citation;    
							}
					} else {
							var auteur = prompt("Quel est l'auteur de la citation ?") || "";
							var citation = prompt("Quelle est la citation ?") || "";
							startTag = "<citation nom=\"" + auteur + "\">";
							currentSelection = citation;    
					}
			break;	
		}
	}
	
	if (window.ActiveXObject) {
		textRange.text = startTag + currentSelection + endTag;
		textRange.moveStart('character', -endTag.length-currentSelection.length);
		textRange.moveEnd('character', -endTag.length);
		textRange.select();  
	} else { // Ce n'est pas IE
		field.value = startSelection + startTag + currentSelection + endTag + endSelection;
		field.focus();
		field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
	}      
}

function preview(textareaId, previewDiv) {
	var field = textareaId.value;
	if (document.getElementById('previsualisation').checked && field) {
		
		var smiliesName = new Array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
		var smiliesUrl  = new Array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
		var smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/";
	
		field = field.replace(/&/g, '&amp;');
		field = field.replace(/</g, '<').replace(/>/g, '>');
		field = field.replace(/\n/g, '<br />').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
		
		field = field.replace(/([\s\S]*?)<\/gras>/g, '<strong>$1</strong>');
		field = field.replace(/([\s\S]*?)<\/italique>/g, '<em>$1</em>');
		field = field.replace(/<lien>([\s\S]*?)<\/lien>/g, '<a href="$1">$1</a>');
		field = field.replace(/<lien url="([\s\S]*?)">([\s\S]*?)<\/lien>/g, '<a href="$1" title="$2">$2</a>');
		field = field.replace(/<image>([\s\S]*?)<\/image>/g, '<img src="$1" alt="Image" />');
		field = field.replace(/<citation nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>');
		field = field.replace(/<citation lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>');
		field = field.replace(/<citation nom=\"(.*?)\" lien=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$2">Citation : $1</a></span><div class="citation2">$3</div>');
		field = field.replace(/<citation lien=\"(.*?)\" nom=\"(.*?)\">([\s\S]*?)<\/citation>/g, '<br /><span class="citation"><a href="$1">Citation : $2</a></span><div class="citation2">$3</div>');
		field = field.replace(/<citation>([\s\S]*?)<\/citation>/g, '<br /><span class="citation">Citation</span><div class="citation2">$1</div>');
		field = field.replace(/<taille valeur=\"(.*?)\">([\s\S]*?)<\/taille>/g, '<span class="$1">$2</span>');
		
		for (var i=0, c=smiliesName.length; i<c; i++) {
			field = field.replace(new RegExp(" " + smiliesName[i] + " ", "g"), "&nbsp;<img src=\"" + smiliesPath + smiliesUrl[i] + "\" alt=\"" + smiliesUrl[i] + "\" />&nbsp;");
		}
		
		document.getElementById(previewDiv).innerHTML = field;
	}
}

function getXMLHttpRequest() {
	var xhr = null;
	
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest();
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
	
	return xhr;
}


function view(textareaId, viewDiv){
	var content = encodeURIComponent(document.getElementById(textareaId).value);
	var xhr = getXMLHttpRequest();
	
	if (xhr && xhr.readyState != 0) {
		xhr.abort();
		delete xhr;
	}
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200){
			document.getElementById(viewDiv).innerHTML = xhr.responseText;
		} else if (xhr.readyState == 3){
			document.getElementById(viewDiv).innerHTML = "<div style=\"text-align: center;\">Chargement en cours...</div>";
		}
	}
	
	xhr.open("POST", "view.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send("string=" + content);
}

//-->
</script>
</head>
<body>
<?php 
	require "config.php";
	//Connection à la DB
	mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	mysql_select_db(DB_BDD);
	if(!empty($_POST))
	{
		extract($_POST);		
		
		$sql="UPDATE news SET titre='$titre', contenu='$textarea' WHERE id=$id";;
		$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />' .mysql_error());
		echo "News Modifiée";
		$_GET["id"]=$id;
	}
	$sql="SELECT * FROM news WHERE id={$_GET["id"]}";
	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />' .mysql_error());
	$data = mysql_fetch_assoc($req);
?>
<div id="main">

	<form action="edit2.php" method="post">
		<div>
		
			<p>
            	<input name="id" type="hidden" value="<?php echo $data["id"]; ?>"/>
				<input type="button" value="G" onclick="insertTag('<gras>', '', 'textarea')" />
				<input type="button" value="I" onclick="insertTag('<italique>', '', 'textarea')" />
				<input type="button" value="Lien" onclick="insertTag('', '', 'textarea', 'lien')" />
				<input type="button" value="Image" onclick="insertTag('<image>', '</image>', 'textarea')" />
				<input type="button" value="Citation" onclick="insertTag('', '', 'textarea', 'citation')" />

				<select onchange="insertTag('<taille valeur=&quot;' + this.options[this.selectedIndex].value + '&quot;>', '</taille>', 'textarea');">
					<option value="none" class="selected" selected="selected">Taille</option>
					<option value="ttpetit">Très très petit</option>
					<option value="tpetit">Très petit</option>
					<option value="petit">Petit</option>
					<option value="gros">Gros</option>

					<option value="tgros">Très gros</option>
					<option value="ttgros">Très très gros</option>
				</select>
				<img src="../emoticones/smile.png" alt=":)" onclick="insertTag(':)', '', 'textarea');" />
				<img src="../emoticones/unsure.gif" alt=":euh:" onclick="insertTag(':euh:', '', 'textarea');" />
                <img src="../emoticones/ange.png" alt=":ange:" onclick="insertTag(':ange:', '', 'textarea');" />
                <img src="../emoticones/angry.gif" alt=":colere:" onclick="insertTag(':colere:', '', 'textarea');" />
                <img src="../emoticones/blink.gif" alt="O.o" onclick="insertTag('O.o', '', 'textarea');" />
                <img src="../emoticones/clin.png" alt=";)" onclick="insertTag(';)', '', 'textarea');" />
                <img src="../emoticones/diable.png" alt=":diable:" onclick="insertTag(':diable:', '', 'textarea');" />
                <img src="../emoticones/heureux.png" alt=":D" onclick="insertTag(':D', '', 'textarea');" />
                <img src="../emoticones/hihi.png" alt="^^" onclick="insertTag('^^', '', 'textarea');" />
                <img src="../emoticones/huh.png" alt=":o" onclick="insertTag(':o', '', 'textarea');" />
                <img src="../emoticones/langue.png" alt=":p" onclick="insertTag(':p', '', 'textarea');" />
                <img src="../emoticones/magicien.png" alt=":magicien:" onclick="insertTag(':magicien:', '', 'textarea');" />
                <img src="../emoticones/mechant.png" alt=":colere2:" onclick="insertTag(':colere2:', '', 'textarea');" />
                <img src="../emoticones/ninja.png" alt=":ninja:" onclick="insertTag(':ninja:', '', 'textarea');" />
                <img src="../emoticones/pinch.png" alt=">_<" onclick="insertTag('>_<', '', 'textarea');" />
                <img src="../emoticones/pirate.png" alt=":pirate:" onclick="insertTag(':pirate:', '', 'textarea');" />
                <img src="../emoticones/pleure.png" alt=":'(" onclick="insertTag(':'(', '', 'textarea');" />
                <img src="../emoticones/rire.gif" alt=":lol:" onclick="insertTag(':lol:', '', 'textarea');" />
                <img src="../emoticones/rouge.png" alt=":honte:" onclick="insertTag(':honte:', '', 'textarea');" />
                <img src="../emoticones/siffle.png" alt=":wind:" onclick="insertTag(':wind:', '', 'textarea');" />
                <img src="../emoticones/soleil.png" alt=":soleil:" onclick="insertTag(':soleil:', '', 'textarea');" />
                <img src="../emoticones/triste.png" alt=":(" onclick="insertTag(':(', '', 'textarea');" />
                <img src="../emoticones/unsure.gif" alt=":euh:" onclick="insertTag(':euh:', '', 'textarea');" />
                <img src="../emoticones/waw.png" alt=":waw:" onclick="insertTag(':waw:', '', 'textarea');" />
                <img src="../emoticones/zorro.png" alt=":zorro:" onclick="insertTag(':zorro:', '', 'textarea');" />
			</p>
			
			<p>
				<input name="previsualisation" type="checkbox" id="previsualisation" value="previsualisation" />

				<label for="previsualisation">Pr&eacute;visualisation automatique</label>
			</p>
			
		</div>
		<label for="titre">Titre : </label><input type="text" name="titre" id="titre" value="<?php echo $data["titre"]; ?>" style="width:300px"/>
		<textarea onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="textarea" cols="150" rows="10"><?php echo $data["contenu"]; ?></textarea>
		
		<div id="previewDiv"></div>
		
		<p>
			<input type="button" value="Visualiser" onclick="view('textarea','viewDiv');" />
            <input type="submit" value="Modifier"/>

		</p>
		
		<div id="viewDiv"></div>
	</form>

<p><a href="index.php"> Retour au panneau d'administration des news </a></p>	
</div>
</body>
</html>


A voir également:

5 réponses

Utilisateur anonyme
17 avril 2009 à 13:07
heu... juste une question : est-ce que tu pourrais "nettoyer" un peu le code du javascript pour que ce soit plus simple à "lire" parce que là...

sinon, je ne vois pas d'où viennent ces variables :

<code
$sql="UPDATE news SET titre='$titre', contenu='$textarea' WHERE id=$id";
</code>
(tu ne déclare la variable $titre et $textarea à aucun moment...)


sinon rien à voir mazis j'adore le design de ton site !
0
Oxyan Messages postés 695 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 2 juin 2011 17
17 avril 2009 à 13:13
Grace a
extract($_POST);
elles sont déclaré non ? en tout cas sa marcher sur mon ancien éditeur de news...
0
Utilisateur anonyme
17 avril 2009 à 13:31
a oui effectivement j'avais pas vu

peut-être quand donnant un nom à la textarea...

<textarea onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="textarea" cols="150" rows="10"><?php echo $data["contenu"]; ?></textarea>


<textarea name="textarea" onkeyup="preview(this, 'previewDiv');" onselect="preview(this, 'previewDiv');" id="textarea" cols="150" rows="10"><?php echo $data["contenu"]; ?></textarea>
0
Oxyan Messages postés 695 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 2 juin 2011 17
17 avril 2009 à 13:35
merci je test

si non tu pourais m'aider a réglé mon autre problème : http://www.commentcamarche.net/forum/affich 12045100 probleme d accent et autre utf 8?dernier#dernier

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oxyan Messages postés 695 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 2 juin 2011 17
17 avril 2009 à 13:36
Merci sa marche niquel avec name="textarea" x) en faite la variable post est nommé depuis le name="" et non id="" comme je penssé ><
0