Prévisualisation en direct d'une page PHP

Eléphanteau du PHP | 23 Messages

11 juin 2012, 13:19

Bonjour,

Je cherche à prévisualiser en direct l'ajout d'une 'actualité' sur mon site. En effet, ce n'est pas très intuitif pour un utilisateur lambda. Voici un exemple de ce que l'on obtient avec le moyen actuel :

Image

J'ai entendu parler d'un outil de prévisualisation mais je n'ai rien trouvé... Pour que ce soit plus parlant, voici le code dont est composée la page :
<?php include('../init.php');
echo "<h1>";
	$idActu=$tabVariables[0];
	if($idActu==""){
		echo "Publication d'une actualit&eacute;";
	}else{
		echo "Modification de l'actualit&eacute; $idActu";
		$req=verifReq("SELECT * FROM actualite WHERE idActu='$idActu'");
		$titre=mysql_result($req,0,'titre');
		$texte=mysql_result($req,0,'texte');
		$texte=str_replace("<br />","",$texte);
	}
echo "</h1>";
echo "<div id='contenu'>";
	echo "<p>Titre <input type='text' size='60' id='titreActu' value=\"$titre\" /></p>";
	echo "<p>";
			$idDivToMod='textActu';
			include('../miseEnForme.php');
	echo "</p>";
	echo "<p>";
		echo "<textarea rows='16' id='textActu' name='textActu' style='width:100%'>$texte</textarea>";
	echo "</p>";
echo "</div>";
	echo "<div class='cadreEntete'>";
		if($idActu==""){
			echo "<input type='button' value='Publier' onClick=goValidAddActu(); /> ";
		}else{
			echo "<input type='button' value='Modifier' onClick=goValidModActu('$idActu'); /> ";			
		}
		echo "<input type='button' value='Annuler' onClick=hideDiv('popup'); />";
	echo "</div>";

?>
Je vous remercie d'avance pour votre aide.

ViPHP
xTG
ViPHP | 7331 Messages

11 juin 2012, 13:29

Le principe est de rajouter une div en haut ou en bas avec le contenu posté du formulaire. :)
En gros c'est comme déporter ton code d'affichage de l'actualité sur la partie de publication.

Après pour la méthode on peut voir cela avec rechargement de la page (entièrement PHP) ou bien en direct avec du Javascript.

Eléphanteau du PHP | 23 Messages

11 juin 2012, 13:31

J'aimerais bien le réaliser en direct avec Javascript :)
Comment dois-je m'y prendre ? N'existe-t-il pas déjà des outils pour ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

11 juin 2012, 13:59

Tu peux effectivement ajouter un simple bouton "Aperçu" comme sur ce forum, qui recharge la page et affiche le résultat qui sera obtenu. En javascript, le principe est sensiblement le même. Il faut ajouter une zone (type div) sur ta page, et lorsque l'utilisateur clique sur aperçu, mettre à jour celle-ci avec le contenu du code saisi.

Autre solution également, tu peux utiliser les éditeur de texte "WYSIWYG" (What You See Is What You Get) qui te permettent de voir en direct le résultat de ta saisie (gras, italique, couleur, ...), un peu comme sous word. Le code généré par ces outils n'est en revanche pas toujours très propre... Tout dépend donc de ton besoin :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 23 Messages

11 juin 2012, 14:03

Je vous remercie. Je vais me rabattre sur un éditeur de texte "WYSIWYG". C'est tout à fait ce dont j'ai besoin. Simple et compréhensif pour un large éventail de personnes. Je n'ai nullement besoin que le code soit propre pour cette partie du site.

Je vous remercie pour vos réponses :)

ViPHP
xTG
ViPHP | 7331 Messages

11 juin 2012, 14:34

Puisque tu pars sur cette voie là, voici un lien pas mal que j'ai trouvé récemment : http://xing.github.com/wysihtml5/

Eléphanteau du PHP | 23 Messages

11 juin 2012, 16:27

Merci.

Mais j'ai suivi toutes les instruction et aucune modification ne se fait sur ma textarea.
J'ai tenté d'en créer une nouvelle mais rien n'y fait. Je ne sais pas si c'est une question d'emplacement de scripts... J'ai essayé de nombreux éditeur WYSIWYG, aucun ne fonctionne quand je l'intègre. En revanche, quand je les test sur une seule page à part, ils fonctionnent.

Voici ce que j'ai essayé :
<?php include('../init.php');

echo "<script src='../xing/parser_rules/advanced.js'></script>
<script src='../xing/dist/wysihtml5-0.3.0.min.js'></script>
<script>
var editor = new wysihtml5.Editor('wysihtml5-textarea', { // id of textarea element
  toolbar:      'wysihtml5-toolbar', // id of toolbar element
  parserRules:  wysihtml5ParserRules // defined in parser rules set 
});
</script>";

echo "<h1>";
	$idActu=$tabVariables[0];
	if($idActu==""){
		echo "Publication d'une actualit&eacute;";
	}else{
		echo "Modification de l'actualit&eacute; $idActu";
		$req=verifReq("SELECT * FROM actualite WHERE idActu='$idActu'");
		$titre=mysql_result($req,0,'titre');
		$texte=mysql_result($req,0,'texte');
		$texte=str_replace("<br />","",$texte);
	}
echo "</h1>";
echo "<div id='contenu'>";
	echo "<p>Titre <input type='text' size='60' id='titreActu' value=\"$titre\" /></p>";
	echo "<p>";
			$idDivToMod='textActu';
			include('../miseEnForme.php');
	echo "</p>";
	echo "<p>";
		echo "<textarea class='markItUp' rows='16' id='textActu' name='textActu' style='width:100%'>$texte</textarea>";
		echo "<div id='wysihtml5-toolbar' style='display: none;'>
		  <a data-wysihtml5-command='bold'>bold</a>
		  <a data-wysihtml5-command='italic'>italic</a>
		  
		  <!-- Some wysihtml5 commands require extra parameters -->
		  <a data-wysihtml5-command='foreColor' data-wysihtml5-command-value='red'>red</a>
		  <a data-wysihtml5-command='foreColor' data-wysihtml5-command-value='green'>green</a>
		  <a data-wysihtml5-command='foreColor' data-wysihtml5-command-value='blue'>blue</a>
		  
		  <!-- Some wysihtml5 commands like 'createLink' require extra paramaters specified by the user (eg. href) -->
		  <a data-wysihtml5-command='createLink'>insert link</a>
		  <div data-wysihtml5-dialog='createLink' style='display: none;'>
			<label>
			  Link:
			  <input data-wysihtml5-dialog-field='href' value='http://' class='text'>
			</label>
			<a data-wysihtml5-dialog-action='save'>OK</a> <a data-wysihtml5-dialog-action='cancel'>Cancel</a>
		  </div>
		</div>";
		echo "<form><textarea id='wysihtml5-textarea' placeholder='Enter your text ...' autofocus></textarea></form>";
	echo "</p>";
echo "</div>";
	echo "<div class='cadreEntete'>";
		if($idActu==""){
			echo "<input type='button' value='Publier' onClick=goValidAddActu(); /> ";
		}else{
			echo "<input type='button' value='Modifier' onClick=goValidModActu('$idActu'); /> ";			
		}
		echo "<input type='button' value='Annuler' onClick=hideDiv('popup'); />";
	echo "</div>";

?>

ViPHP
xTG
ViPHP | 7331 Messages

11 juin 2012, 16:33

Regardes la console javascript de ton navigateur, tu as sans doute deux fichier JS qui rentre en conflit.

Eléphanteau du PHP | 23 Messages

11 juin 2012, 16:54

Non, pas d'erreurs nominées... Ai-je mal placé le code javascript ?
Pour mieux comprendre, voici comment est construite la page :

Index.html inclut init.php
Quand on clique sur Publier une actualité, on ouvre un popup qui contient la page formAdd.php qui elle aussi inclut init.php

ViPHP
xTG
ViPHP | 7331 Messages

11 juin 2012, 17:13

Mets les balises scripts dans ta balise head pour voir. Bien qu'il me semble qu'on puisse comme style la mettre dans le body, mais bon de toute façon ça fait pas très propre.

Et applique un style bien flashy à ton textarea histoire de le repérer. Comme tu as laissé ton ancien textarea tu ne vois peut être pas le second en dessous.

Eléphanteau du PHP | 23 Messages

11 juin 2012, 17:27

Non, aucune différence (c'est la seconde textarea) :

Image

Et console WEB toujours vide.

Voici les pages qui sont concernées (je pense...) :

INDEX.PHP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">

<head>
	<title>.:: Intranet CSM ::.</title>
	<link href="style.css" rel="stylesheet" type="text/css">
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<SCRIPT LANGUAGE="Javascript" SRC="fonctions.js"></SCRIPT>
<SCRIPT LANGUAGE="Javascript" SRC="fonctionsChat.js"></SCRIPT>
<SCRIPT LANGUAGE="Javascript" SRC="jscode_calendrier.js"></SCRIPT>
<script language="JavaScript" type="text/javascript" src="lib/prototype.js"></script>
<script language="JavaScript" type="text/javascript" src="src/scriptaculous.js"></script>
<script src="../xing/parser_rules/advanced.js"></script>
<script src="../xing/dist/wysihtml5-0.3.0.min.js"></script>
<script>
var editor = new wysihtml5.Editor('wysihtml5-textarea', { // id of textarea element
  toolbar:      'wysihtml5-toolbar', // id of toolbar element
  parserRules:  wysihtml5ParserRules // defined in parser rules set 
});
</script>

<?php 
	
	include('init.php');
	
?>

<div id='popup'>gfdgd</div>
<body id='body0' onload="init()"  onKeyDown="touchepress(event)">


<?php 
if (@$_POST['mdp_ext']!=""){
	$_SESSION['mdp_ext']=@$_POST['mdp_ext'];
}
list($adr1,$adr2,$adr3,$adr4)=explode(".",$_SERVER['REMOTE_ADDR']);
if ( $adr1==192 || $adr1==127 || @$_SESSION['mdp_ext']=="csm95ext"){
?>
<div id="communication"></div>
<div id="chatBox" style='display:none'></div>
<div id='emulBody'>
	<div id='page'>
		<input type='hidden' id='path' />
		<div id='divRequete' style='display:none'></div>
		<div id='popupAlert'></div>
		<div id='cadreLoading'>Chargement des donn&eacute;es<br><img src="imgs/loading.gif" /></div>
		<div id='banniere'>
			<?php  include ('entete.php');?>
		</div>
		<div id='menu'>
			<?php  include ('menu.php'); ?>
		</div>
		<div id='corps'>
        	<marquee scrollamount="5">
				<?php  
					$reqNews=verifReq("SELECT *, DATE_FORMAT(dateNews,'%d/%m/%Y %H:%i') AS date  FROM news ORDER BY dateNews DESC");
					while($rowNews=mysql_fetch_object($reqNews)){
					//	echo "<strong>$rowNews->date - </strong>";
						echo "<font size='3'><b>$rowNews->txtNews</b></font>";
						echo " &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ";
					}
				?>
			</marquee>
			<?php 
			
				if(!isset($_SESSION['idUser'])){
					$idUserToCo='inconnu';
					$_SESSION['idUser']=$idUserToCo;
					recLog($_SESSION['idUser'], $_SERVER["REMOTE_ADDR"]);
					include_once('chat/initChat.php');
					$_SESSION['classChat']=serialize($colChat);
				}
				echo "<div id='cadrePlus'></div>";
				echo "<div id='rubrique'></div>";
					
			?>
			<div class='spacer' ></div>
		</div>
		<div style='float:left;padding:2px;color:#FFFFFF;'>Votre adresse ip : <strong><?php=$_SERVER["REMOTE_ADDR"]; ?></strong></div>
		<div id='basPage'>
			Intranet CSM &copy; - V 3.1 - MAJ : 16/06/10
			
		</div>
	</div>
</div>
<?php 
}else{
?>
	<form id='cadreAuthent' method='POST' action='index.php'>
		<div class='caseEntete'>Authentification externe</div>
		<div align='center'>
			<p style='margin-bottom:5px;'>
				Vous essayez de vous connecter &agrave; l'intranet depuis un poste externe au r&eacute;seau interne de la clinique
			</p>
			<p style='margin-bottom:5px;'>
				Saisissez le mot de passe externe
			</p>
			<p style='margin-bottom:5px;'>
				<input type='password' name='mdp_ext' />
			</p>
				<input type='submit' value='Connexion' />
		</div>
	</form>
<?php 
}
?>
<br>
</body>
</html>
ACCUEIL.PHP (accueil des actualités) :
<?php 
	include('../init.php');
	echo "<h1>Actualit&eacute; de la clinique</h1>";
	echo "<div id='divAddImg'></div>";
	echo "<div id='contenu'>";
		if (rechTab($tabDroit, "admin") || rechTab($tabDroit, "mActu")){
			echo "<input type='button' onClick=showDiv('popup');linkToDiv('actualite/formAdd.php','popup','','0','1');  value='Publier une actualit&eacute;' style='float:left' />";
			//echo "<div id='divAdd' style='width:600px;'></div>";
		}
		$limite=$tabVariables[0];
		if (!$limite==" "){
			$limite = 0;
		}
		$nombre=4;
	
		$libReq="SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS dateActu 
				FROM actualite a, user u 
				WHERE a.auteur=u.idUser 
				ORDER BY date DESC";
		//**************AFFICHAGE PAGINATION***************
		pagination($libReq,"actualite/accueil.php","rubrique",$nombre,$limite);
		
		$libReq.=" LIMIT ".$limite.",".$nombre;
		$req=verifReq($libReq);
		$cptColor=0;
		while ($row=mysql_fetch_object($req)){
			$cptColor++;
			$idActu=$row->idActu;
			$titre=stripslashes($row->titre);
			$texte=stripslashes($row->texte);
			$auteur=$row->auteur;
			$nomAuteur=$row->nom;
			$prenomAuteur=$row->prenom;
			$date=$row->dateActu;
			
			echo "<div  style='margin-top:20px'></div>";
			//***************************LISTE DES ACTUALITES****************************
			echo "<div id='affich$idActu'>";
				echo "<div class='btAddRight'>";
					echo "$date par $prenomAuteur $nomAuteur";
				echo "</div>";
				echo "<div class='caseEntete'>$titre</div>";
				echo "<div class='case".$cptColor."Spe'>";
					echo $texte;
					if ($_SESSION['idUser']==$auteur || rechTab($tabDroit, "admin")){
						echo "<div class='options'><br /><br />";
							echo "<input type='button' value='modifier' onClick=showDiv('popup');linkToDiv('actualite/formAdd.php','popup','$idActu','0','1'); /> ";
							echo "<input type='button' value='supprimer' onClick=goDelActu('$idActu'); />";
						echo "</div>";
					}
				echo "</div>";
			echo "</div>";
			
			//***************************FORMULAIRE DE MODIFICATION*****************************
			echo "<div id='mod$idActu' style='display:none;'>";
				echo "<div class='caseEntete'>Modification d'une actualit&eacute;</div>";
				echo "<div class='case$cptColor' >";
					$texte=str_replace("<br />","",$texte);
					echo "<p>";
						echo "Titre <input type='text' size='100' id='titreActu$idActu' value=\"$titre\" />";
					echo "</p>";
					echo "<p>";
						$idDivToMod='textActu'.$idActu;
						include('../miseEnForme.php');
					echo "</p>";
					echo "<p>";
						echo "<textarea cols='80' rows='10' id='textActu$idActu'>".$texte."</textarea>";
					echo "</p>";
					echo "<p>";
						echo "<input type='button' value='Publier' onClick=goValidModActu('$idActu'); /> ";
						echo " <input type='button' value='Annuler' onClick=hideShowDiv('mod$idActu','affich$idActu'); />";
					echo "</p>";
				echo "</div>";
			echo "</div>";
			if($cptColor==2){
				$cptColor=0;
			}
		}
	echo "</div>";
?>
FORMADD.PHP (formulaire d'ajout d'une actualité) :
<?php include('../init.php');

echo "<h1>";
	$idActu=$tabVariables[0];
	if($idActu==""){
		echo "Publication d'une actualit&eacute;";
	}else{
		echo "Modification de l'actualit&eacute; $idActu";
		$req=verifReq("SELECT * FROM actualite WHERE idActu='$idActu'");
		$titre=mysql_result($req,0,'titre');
		$texte=mysql_result($req,0,'texte');
		$texte=str_replace("<br />","",$texte);
	}
echo "</h1>";
echo "<div id='contenu'>";
	echo "<p>Titre <input type='text' size='60' id='titreActu' value=\"$titre\" /></p>";
	echo "<p>";
			$idDivToMod='textActu';
			include('../miseEnForme.php');
	echo "</p>";
	echo "<p>";
		echo "<textarea rows='16' id='textActu' name='textActu' style='width:100%'>$texte</textarea>";
		echo "<form><textarea id='wysihtml5-textarea' placeholder='Enter your text ...' autofocus></textarea></form>";
	echo "</p>";
echo "</div>";
	echo "<div class='cadreEntete'>";
		if($idActu==""){
			echo "<input type='button' value='Publier' onClick=goValidAddActu(); /> ";
		}else{
			echo "<input type='button' value='Modifier' onClick=goValidModActu('$idActu'); /> ";			
		}
		echo "<input type='button' value='Annuler' onClick=hideDiv('popup'); />";
	echo "</div>";

?>
INIT.PHP :
<?php 
session_start();

$tabVariables= (isset($_POST['variables'])) ? explode("*_*",$_POST['variables']) : array();
$tabDroit=$_SESSION['droit'];
//$connexion=mysql_connect('localhost:8888', 'root', 'root');
$connexion=mysql_connect("localhost","root","");
if(!$connexion){
	//Echec de la connexion
	echo "Echec de la connexion <br>";
	echo "V&eacute;rifiez si le serveur Mysql est d&eacute;marr&eacute; <br>";
	die;
}
if(@$fileGet==""){
	$select_base=mysql_select_db("icsm");
	if(!$select_base){
		//Echec slection base
		echo "<div style='margin:auto;width:400px;'>";
		echo "<div class='caseEntete'>Impossible de s&eacute;lectionner la base</div>";
		$dir = opendir("sauvegardes/dump/"); 
			$cptColor=0;
			while ($file = readdir($dir)) {
				if ($file!=".." &&  $file!="."){
					$f=explode("_",$file);
					$h=explode(".",$f[2]);
					$cptColor++;
					echo "<div class='case".$cptColor."Spe' style='padding-bottom:10px;'>";
						echo "<strong>$f[1] &agrave; $h[0]</strong><br/>";
						echo ">> <a href='requetes.php?file=sauvegardes/dump/$file'>Restaurer : $file</a>";
					echo "</div>";
					if($cptColor>=2){
						$cptColor=0;
					}
				}
			}
		echo "</div>";
		die;
	}
}
function trieCarac($elt){
	if(ereg("div",$elt)){
		echo("test");
	}
	/*if ($elt=="<div"){
		str_replace("<div","",$elt);
	}*/
}

function verifReq($requete){
	$result=mysql_query($requete);
	if(!$result){
		echo "Erreur, v&eacute;rifiez la validit&eacute; de la requ&ecirc;te<br>";
		echo $requete;
	}else{
		return $result;
	}
}

function rechTab($tab, $elt){
	if (isset($_SESSION['idUser']) && $_SESSION['idUser']!='inconnu'){
		foreach ($tab as $val){
			if ($val==$elt){
				return true;
			}
		}
	}else{
		return false;
	}
}

function pagination($req,$chemin,$div,$nombre,$limite){
	//************PAGINATION**************//
	if ($limite==""){$limite=0;}
	if (!isset($limite)){
		$limite = 0;
	}
	$tabVar=explode("*_*",$req);
	$varToSend = isset($tabVar[1]) ? $tabVar[1] : "";
	$req=verifReq($tabVar[0]);
	$total = mysql_num_rows($req);
	$limiteSuiv = $limite + $nombre;
	$limitePrec = $limite - $nombre;
	$totalPage=ceil($total/$nombre);
	$numPage=($limite/$nombre)+1;
	if ($totalPage>1){
		echo "<div id='pagination' align='right'>";
			if($limite != 0) {
				echo "<a onClick=linkToDiv('$chemin','$div','$limitePrec*_*$varToSend','1'); >P&eacute;c&eacute;dent</a>";
			}
			//echo "Page ".$numPage."/".$totalPage."";
			for($cpt=1;$cpt<=$totalPage;$cpt++){
				$style='';
				if ($numPage==$cpt){
					$style='background:#FFCC66;';
				}
				//if ($totalPage<10 || ($cpt<=3 || $cpt>=($totalPage-3) || $cpt==$numPage)){
				if (($cpt<=($numPage+2) && $cpt>=($numPage-2)) || $cpt==$numPage){
					echo " <a onClick=linkToDiv('$chemin','$div','".($nombre*($cpt-1))."*_*$varToSend','1'); >";
						if ($numPage==$cpt){
							echo "<u><strong>$cpt</strong></u>";
						}else{
							echo $cpt;
						}
					echo "</a>";
				}				
			}
			if($limiteSuiv < $total) {
				echo " <a onClick=linkToDiv('$chemin','$div','$limiteSuiv*_*$varToSend','1'); >Suivant</a>";
			}
		echo "</div>";
	}
//************************************//
}

function cleanTxt($texte){
	$elt=addslashes(nl2br($texte));
	$elt=str_replace("<div", "<ERREUR>", $elt);
	$elt=str_replace("[et]", "&", $elt);
	$elt=str_replace("[plus]", "+", $elt);
	return $elt;
}

function rotateImg($imgOrigin,$imgDest,$degre){
	//***************************
	$filename = "../".$imgOrigin;
	$degrees = $degre;


	// Chargement
	$source = imagecreatefromjpeg($filename);

	// Rotation
	$rotate = imagerotate($source, $degrees, 0);

	// Affichage
	//imagejpeg($rotate); 

	$img_dest= "../".$imgDest;
	   
	//On enregistre l'image
	ImageJpeg($rotate,$img_dest,100);
	
	
}

function resizedImg($img){
	if (!strstr($img,'_ref')){
		// Fichier et nouvelle taille
		$filename = "../".$img;
				
		$percent = 0.5;
		
		// Calcul des nouvelles dimensions
		list($width, $height) = getimagesize($filename);
		
			//$newwidth = $width * $percent;
			//$newheight = $height * $percent;
			
		if ($height>$width){
			$newwidth = 75;
			$newheight = 75;
		}else{
			$newwidth = 100;
			$newheight = 100;
		}
		
		
		if (strstr($img,'_grand')){
			$filenameRef = "../".str_replace('_grand','_ref',$img);
			$newwidth=$newwidth*7;
			$newheight=$newheight*7;
		}else{
			$filenameRef = "../".str_replace('_petit','_ref',$img);
		}
		
		//echo $filenameRef;
	$val=redimage($filenameRef,$filename,$newwidth,$newheight,'.jpg','');
	//echo "<img $val />";
	
	}
}

function redimage($img_src,$img_dest,$dst_w,$dst_h,$extImg,$extImg2) {
   // Lit les dimensions de l'image
   $size = GetImageSize($img_src);  
   $src_w = $size[0]; $src_h = $size[1];  
   
   // Teste les dimensions tenant dans la zone
   $test_h = round(($dst_w / $src_w) * $src_h);
   $test_w = round(($dst_h / $src_h) * $src_w);
   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;
   // Sinon si Width final non précisé (0)
   elseif(!$dst_w) $dst_w = $test_w;
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($test_h>$dst_h) $dst_w = $test_w;
   else $dst_h = $test_h;

   // La vignette existe ?
   $test = (file_exists($img_dest));
   // L'original a été modifié ?
   if($test)
      $test = (filemtime($img_dest)>filemtime($img_src));
   // Les dimensions de la vignette sont correctes ?
   if($test) {
      $size2 = GetImageSize($img_dest);
      $test = ($size2[0]==$dst_w);
      $test = ($size2[1]==$dst_h);
   }

   // Créer la vignette ?
   if(!$test) {
      // Crée une image vierge aux bonnes dimensions
      // $dst_im = ImageCreate($dst_w,$dst_h);
      $dst_im = ImageCreateTrueColor($dst_w,$dst_h); 
      // Copie dedans l'image initiale redimensionnée
      if ($extImg=='.jpg' || $extImg2=='.jpeg'){
     	 $src_im = ImageCreateFromJpeg($img_src);
      }
      if ($extImg=='.png'){
     	 $src_im = imagecreatefrompng($img_src);
      }
      if ($extImg=='.gif'){
     	 $src_im = imagecreatefromgif($img_src);
      }
      // ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
      ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
      // Sauve la nouvelle image
      @ImageJpeg($dst_im,$img_dest,100);
      // Détruis les tampons
      ImageDestroy($dst_im);  
      ImageDestroy($src_im);
   }

   // Affiche le descritif de la vignette
   $valReturn="SRC='".$img_dest."?t=".time()."' WIDTH=".$dst_w." HEIGHT=".$dst_h;
   return $valReturn;
}


function genBox($num,$tab,$etatConsult,$nb){
	$cptColor=2;
	for ($cpt=1;$cpt<=$nb;$cpt++){
		echo "<div class='entete$cptColor'>";
			if ($etatConsult=="modif"){	
					echo $tab[$num-1][$cpt];
					if ($tab[$num-1][$cpt]=="")
						echo 0;
			}else{
				echo "<input type='radio' name='rep$num' value='$cpt' class='noBorder'  />";			
			}
		echo "</div>";
		$cptColor++;
		if ($cptColor>2)
			$cptColor=1;
	}
}

function genBoxP($num,$rep,$nb){
	$num++;
	$cptColor=2;
	for ($cpt=1;$cpt<=$nb;$cpt++){
		echo "<div class='entete$cptColor' style='width:30px'>";
			echo "<input type='radio' name='rep$num' value='$cpt' class='noBorder'";
			if ($rep==$cpt){
				echo " checked";
			}
			echo "  />";			
		echo "</div>";
		$cptColor++;
		if ($cptColor>2)
			$cptColor=1;
	}
	return $num;
}

function genBox3($num,$tab,$etatConsult){
	$cptColor=2;
	$total=0;
	$nbNote=0;
	for ($cpt=0;$cpt<=10;$cpt++){
		$cptColor++;
		echo "<div class='entete$cptColor'>";
			if ($etatConsult=="modif"){	
				echo $tab[$num-1][$cpt];	
				if ($tab[$num-1][$cpt]=="")
					echo 0;
				$total+=($tab[$num-1][$cpt]*$cpt);		
				$nbNote+=$tab[$num-1][$cpt];
			}else{
				echo "<input type='radio' name='rep$num' value='$cpt' class='noBorder'  />";
			}
		echo "</div>";
		if ($cptColor>=4){
			$cptColor=2;
		}
	}	
	if ($etatConsult=="modif" && $nbNote!=0){	
		echo "<div class='entete".($cptColor+1)."' style='width:100px'>";
			echo "<strong>Moyenne : ".number_format(round(($total/$nbNote), 1), 1, ',', '')."</strong>";
		echo "</div>";
	}
}

function genPrecision($num,$valeur){
	$num++;
	$valeur=str_replace("<br />","",$valeur);
	echo "<div class='repTextArea' align='center'><textarea name='rep$num' cols='70' rows='10'>".$valeur."</textarea></div>";
	return $num;	
}

function genBox4($num,$val){
	$num++;
	echo "<div class='entete5' style='width:300px;'>&nbsp;<input type='text' name='rep$num' size='40' value=\"$val\" /></div>";
	return $num;
}
function affBox3(){
	$cptColor=2;
	for ($cpt=0;$cpt<=10;$cpt++){
		$cptColor++;
		echo "<div class='entete$cptColor'><strong>$cpt</strong></div>";
		if ($cptColor>=4){
			$cptColor=2;
		}
	}
}

function recLog($idUser, $ipUser){
	/*$verif=verifReq("SELECT * FROM log WHERE idUser='$idUser' AND ipUser='$ipUser'");
	if (mysql_num_rows($verif)==0){*/
		verifReq("INSERT INTO log VALUES('','$idUser','$ipUser','".date('Y-m-d H:i:s')."')");
	
}

function showPopup($lib){
	echo "<div class='alert'>";
		echo $lib;
		echo "<br><br><input type='button' value='fermer' onClick=hideDiv('popupAlert'); />";
	echo "</div>";

}


function genMenu($type,$num,$class,$tab,$text){
	$onClick="";
	for($cpt=0;$cpt<=(sizeof($tab)-1);$cpt++){
		if ($type==0){
			if ($cpt!=sizeof($tab)-1){
				$onClick.="addTabLink('".$tab[$cpt][0]."','".$tab[$cpt][1]."','".$tab[$cpt][2]."','1');";
			}else{
				$onClick.="linkToDiv('".$tab[$cpt][0]."','".$tab[$cpt][1]."','".$tab[$cpt][2]."','1');";				
			}
		}else{
			$onClick.="window.open('".$tab[$cpt][0]."','".$tab[$cpt][1]."');";
		}
	}
	echo "<li onMouseOver=overMenu($num); onMouseOut=outMenu('$num','$class'); id='btn$num' class='$class' onclick=$onClick; >$text</li>";
	$num++;
	return $num;
}

function dump()
{
	//Connexion à la base
	$db = mysql_connect("localhost","root","");
	mysql_select_db('icsm',$db); 


	$sql = "SHOW TABLES FROM icsm";
	$result = mysql_query($sql);
	
	if (!$result) {
	   echo "Erreur DB, impossible de lister les tables\n";
	   echo 'Erreur MySQL : ' . mysql_error();
	   exit;
	}
	
	$textDump="";
	
	/*$textDump.="SET SQL_MODE=`NO_AUTO_VALUE_ON_ZERO`;";

	$textDump.="DROP DATABASE IF EXISTS `icsm`;";
	$textDump.="CREATE DATABASE `icsm` DEFAULT CHARACTER SET ucs2 COLLATE ucs2_general_ci;";
	$textDump.="USE `icsm`;";*/
		
	while ($row = mysql_fetch_row($result)) {
		$nomTable=$row[0];
				
		$textDump.="DROP TABLE IF EXISTS `$nomTable`;\n ";
		$textDump.="CREATE TABLE `$nomTable` (\n";
	   
	 
		$resultChamps = mysql_query("SHOW COLUMNS FROM $nomTable");  
		if (!$resultChamps) {  
			echo 'Impossible d\'exécuter la requête : ' . mysql_error();  
			exit;  
		}  
		if (mysql_num_rows($resultChamps) > 0) {  
			$tabPrimary=array();
			$ind=0;
			while ($rowChamps = mysql_fetch_assoc($resultChamps)) { 
				$textDump.="`$rowChamps[Field]` $rowChamps[Type] ";
					if(!$rowChamps[Null]){
						$textDump.="NOT NULL" ;
					}
					if($rowChamps['Default']!=""){
						$textDump.=" default '$rowChamps[Default]'";
					}
				$textDump.=" $rowChamps[Extra]";
				if($ind!=(mysql_num_rows($resultChamps)-1)){
					$textDump.=",";
				}
				$textDump.="\n";
				if($rowChamps[Key]=='PRI'){
					array_push($tabPrimary,$rowChamps[Field]);
				}  
				$ind++;
			}  
		}  
		if (sizeof($tabPrimary)!=0){
			$textDump.=",PRIMARY KEY  (";
			$ind=0;
			foreach ($tabPrimary as $key) {
				$textDump.="`$key`";
				if($ind!=sizeof($tabPrimary)-1){
					$textDump.=",";
				}
				$ind++;
			}
			$textDump.=")\n";
		}
		$textDump.=")ENGINE=InnoDB  DEFAULT CHARSET=utf8;";
		$textDump.="\n";
	   
		$nbChamps=(mysql_num_rows($resultChamps)-1);
			$reqValeur=verifReq("SELECT * FROM $nomTable");
			while($tab=mysql_fetch_array($reqValeur)){
				$textDump.="INSERT INTO `$nomTable` VALUES (";
				$ind=0;
				for ($cpt=0;$cpt<=$nbChamps;$cpt++){
					$textDump.="'".addslashes($tab[$cpt])."'";
					if ($cpt!=$nbChamps){
						$textDump.=",";
					}
				}
				
				$textDump.=");\n";
			}
			$textDump.="\n\n";
	}
	$Fnm="sauvegardes/dump/icsmDb_".date('d-m-Y')."_".date('H')."h".date('i')."m".date('s')."s.sql";
	$inF = fopen($Fnm,"a");
	fputs($inF,$textDump);
	//echo $textDump;
}

function upDump($file){
	$Fnm = $file;
	$requete="";
	if (file_exists($Fnm)) {
		$tableau = file($Fnm);
		while(list($cle,$val) = each($tableau)) {
			$requete.=$val;
		}
	}
		 
	$list=explode(";\n",$requete);
	verifReq("SET SQL_MODE=`NO_AUTO_VALUE_ON_ZERO`;");
	verifReq("DROP DATABASE IF EXISTS `icsm`;");
	verifReq("CREATE DATABASE `icsm` DEFAULT CHARACTER SET ucs2 COLLATE ucs2_general_ci;");
	verifReq("USE `icsm`;");
		
	foreach ($list as $value){
		$result=mysql_query($value);
	}
}
?>

ViPHP
xTG
ViPHP | 7331 Messages

11 juin 2012, 18:03

Donc à priori si je comprends bien tu ouvres une popup avec formAdd.php
Sauf que déjà je vois un souci, tu n'as plus les balises script du coup dedans.
Et pour cause, ton HTML est incorrect pour cette popup.
Une popup c'est une page HTML, donc il faut une balise html, head et body ! ;)

Eléphanteau du PHP | 23 Messages

11 juin 2012, 18:28

Fait. J'ai ensuite mis les scripts à l'intérieur du body, avant le code PHP :
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
</head>
<body>
<script src="../xing/parser_rules/advanced.js"></script>
<script src="../xing/dist/wysihtml5-0.3.0.min.js"></script>
<script>
var editor = new wysihtml5.Editor('wysihtml5-textarea', { // id of textarea element
  toolbar:      'wysihtml5-toolbar', // id of toolbar element
  parserRules:  wysihtml5ParserRules // defined in parser rules set 
});
</script>
<?php include('../init.php');

echo "<h1>";
	$idActu=$tabVariables[0];
	if($idActu==""){
		echo "Publication d'une actualit&eacute;";
	}else{
		echo "Modification de l'actualit&eacute; $idActu";
		$req=verifReq("SELECT * FROM actualite WHERE idActu='$idActu'");
		$titre=mysql_result($req,0,'titre');
		$texte=mysql_result($req,0,'texte');
		$texte=str_replace("<br />","",$texte);
	}
echo "</h1>";
echo "<div id='contenu'>";
	echo "<p>Titre <input type='text' size='60' id='titreActu' value=\"$titre\" /></p>";
	echo "<p>";
			$idDivToMod='textActu';
			include('../miseEnForme.php');
	echo "</p>";
	echo "<p>";
		echo "<textarea rows='16' id='textActu' name='textActu' style='width:100%'>$texte</textarea>";
		echo "<form><textarea id='wysihtml5-textarea' placeholder='Enter your text ...' autofocus></textarea></form>";
	echo "</p>";
echo "</div>";
	echo "<div class='cadreEntete'>";
		if($idActu==""){
			echo "<input type='button' value='Publier' onClick=goValidAddActu(); /> ";
		}else{
			echo "<input type='button' value='Modifier' onClick=goValidModActu('$idActu'); /> ";			
		}
		echo "<input type='button' value='Annuler' onClick=hideDiv('popup'); />";
	echo "</div>";

?>
</body>
</html>
Mais toujours le même résultat... Aucun changement n'apparait. :/

ViPHP
xTG
ViPHP | 7331 Messages

11 juin 2012, 18:53

Déplaces les balises script à l'intérieur de la balise head.
Es-tu sûr que ton chemin vers les scripts JS est correct ?
Tu peux rajouter un alert(editor); après la définition de la variable pour voir ce qu'elle a dans le ventre et être sûr que le code s'exécute.

Eléphanteau du PHP | 23 Messages

11 juin 2012, 22:01

J'ai rajouté le code que vous m'avez demandé.
Voici où je l'ai implanté :
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
<head>
<link href="style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script src="../xing/parser_rules/advanced.js"></script>
<script src="../xing/dist/wysihtml5-0.3.0.min.js"></script>
<script>
var editor = new wysihtml5.Editor('wysihtml5-textarea', { // id of textarea element
  toolbar:      'wysihtml5-toolbar', // id of toolbar element
  parserRules:  wysihtml5ParserRules // defined in parser rules set 
});
alert(editor);
</script>
</head>
Mais aucun résultat. Et je ne vois pas où le alert devrait apparaitre. :/