bbcode et php

  • Auteur de la discussion Auteur de la discussion gto55
  • Date de début Date de début
Nouveau WRInaute
Je développe un blog en 2 langues et j'ai trouvé sur editeurjavascript, http://editeurjavascript.com/scripts/scripts_formulaires_3_318.php , un script pour insérer bbcode, je l'ai ajouté à la page php.
Les boutons apparaissent mais pas les balises bbcode.

Les boutons bbcode sont entre une balise php.

Il y a une boucle sur le textarea pour insérer le contenu en plusieurs langues, c'est ici que le script bloque.

Est-ce que qqn sait ce qu'il faudrait modifier?

Merci :o :oops:

Code:
<?php require 'connect.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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> AJOUTER DES NEWS </title>
<title>Backoffice: login</title>
<link rel="stylesheet" href="../css/css.css" type="text/css" />
<link rel="shortcut icon" type="image/x-icon" href="../../favicon.ico" />


<script language="Javascript">
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi");

function storeCaret(selec)
{
	if (isMozilla) 
	{
	// Si on est sur Mozilla

		oField = document.forms['form'].elements['texteNews[]'];

		objectValue = oField.value;

		deb = oField.selectionStart;
		fin = oField.selectionEnd;

		objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
		objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
		objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

	//	alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
			
		oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
		oField.selectionStart = strlen(objectValueDeb);
		oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]");
		oField.focus();
		oField.setSelectionRange(
			objectValueDeb.length + selec.length + 2,
			objectValueDeb.length + selec.length + 2);
	}
	else
	{
	// Si on est sur IE
		
		oField = document.forms['form'].elements['texteNews[]'];
		var str = document.selection.createRange().text;

		if (str.length>0)
		{
		// Si on a selectionné du texte
			var sel = document.selection.createRange();
			sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
			sel.collapse();
			sel.select();
		}
		else
		{
			oField.focus(oField.caretPos);
		//	alert(oField.caretPos+"\n"+oField.value.length+"\n")
			oField.focus(oField.value.length);
			oField.caretPos = document.selection.createRange().duplicate();
			
			var bidon = "%~%";
			var orig = oField.value;
			oField.caretPos.text = bidon;
			var i = oField.value.search(bidon);
			oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
			var r = 0;
			for(n = 0; n < i; n++)
			{if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
			pos = i + 2 + selec.length - r;
			//placer(document.forms['news'].elements['newst'], pos);
			var r = oField.createTextRange();
			r.moveStart('character', pos);
			r.collapse();
			r.select();

		}
	}
}

</script>
</head>
<body>
<div id="conteneur">
  <h1 id="header"><a href="admin.php" title="Accueil"><span>Accueil</span></a></h1>
  <div id="contentTop"></div>
  <div id="contenu">
    <div id="titre"> :: DEFINIR LA NEWS OU ACTUALIT&Eacute; :: </div>
    <br />
    <br />
    <form name="form" action="ajouterNews.php" method="post" enctype="multipart/form-data">
      <table>
        <tr>
          <td width="200" valign="top">.Sélectionner l'icône de la news:</td>
          <td><select name="iconeNews" size="1">
              <option value="actu">actu</option>
              <option value="sport">sport</option>
              <option value="musique">musique</option>
              <option value="cinema">cinéma</option>
            </select>
          </td>
        </tr>
        <tr>
          <td width="200" valign="top">.Auteur de la news</td>
          <td  ><input name="auteur" type="text" class="champ" id="auteur" /></td>
        </tr>
        <tr>
          <td width="200" valign="top">.Titre du lien</td>
          <td  ><input name="lien" type="text" class="champ" id="lien" /></td>
        </tr>
        <tr>
          <td width="200" valign="top">.Url du lien</td>
          <td  ><input name="url" type="text" class="champ" id="url" /></td>
        </tr>
        <tr>
          <td width="200" valign="top">.Image preview de la news:</td>
          <td><input name="imagePreview" type="file"  class="champ" id="imagePreview" /></td>
        </tr>
        <tr>
          <td width="200" valign="top">.Image de la news:</td>
          <td><input name="image" type="file"  class="champ" id="image" /></td>
        </tr>
        <tr>
          <td width="200" valign="top">.Flv de la news:</td>
          <td><input name="flv" type="file"  class="champ" id="flv" /></td>
        </tr>
        <?php
$queryLangue = "SELECT * FROM langue";
$resultLangue = mysql_query($queryLangue, $link);

// boucle sur la table langue et afficher ses résultats avec array 
 while($row = mysql_fetch_array($resultLangue)){
echo '         
        <tr>
          <td width="200" valign="top">.Titre de la news en '.$row["langue"].'</td>
          <td><input name="titreNews[]" type="text" class="champ" id="title'.$row["langue"].'" /></td>
        </tr>
		 <tr>
          <td width="270" valign="top">.Texte '.$row["langue"].' de la news:</td>
          <td>
<input type="button" value="b" style="width:50px;font-weight:bold" onclick="storeCaret(\'b\')">
<input type="button" value="i" style="width:50px;font-style:italic" onclick="storeCaret(\'i\')">
<input type="button" value="u" style="width:50px;text-decoration:underline" onclick="storeCaret(\'u\')">
<input type="button" value="quote"style="width:50px" onclick="storeCaret(\'quote\')">
<input type="button" value="code"style="width:50px" onclick="storeCaret(\'code\')">
<input type="button" value="url"style="width:50px" onclick="storeCaret(\'url\')">
<input type="button" value="img"style="width:50px" onclick="storeCaret(\'img\')"><br>
<textarea name="texteNews[]"  cols="30" rows="7" class="champ" id="texteNews'.$row["langue"].'">
            </textarea></td>
        </tr>		
		';
		}?>
        <!--<input type="hidden" name="MAX_FILE_SIZE" value="20000000" /> -->
        <input type="hidden" name="time" value="<?php echo date("Y-m-d"); ?>" />
        <tr>
          <td width="100" valign="top">&nbsp;</td>
          <td><input type="submit" name="Submit" value="Envoyer" /></td>
        </tr>
      </table>
    </form>
  </div>
  <div id="contentBottom"></div>
  <div id="bottom"></div>
</div>
</body>
</html>
 
WRInaute passionné
Je ne suis pas sûr, mais essaie en enlevant les crochets de texteNews[] (dans le code javascript et le name du textaera). :?
 
Nouveau WRInaute
Merci pour cette réponse rapide :o

Le site est en 2 langues, et pour récupérer les valeurs des textearea, leur name est un tableau.
 
Nouveau WRInaute
le script fait appel au formulaire et au textearea "texteNews".

Le name du textearea est un tableau, pour récupérer le texte en 2 langues dans la base de données.

Le script ne marche pas qd on appelle un tableau.

J'ai essayé de mettre un id, il refuse de marcher.

:cry:
 
WRInaute accro
tu ne peux avoir deux textes différents dans un textarea comme les autres l'on fait remarqué...

il te faut deux textarea simplement..
 
Nouveau WRInaute
Il y a 2 textearea sur le formulaire, avec un name qui est un tableau "texteNews[]" qui permet de récupérer par la suite 2 valeurs à insérer dans la base de données.

Merci :oops: :o
 
Discussions similaires
Haut