Buttonbeschriftung zweizeilig

Rathje

Mitglied
Hallo,
ich möchte die Beschriftung eines Buttons dynamisch mit Text aus einer Datenbank (Datenbankfeldname = 'list') belegen, wenn dieser Button (name=Choice) im Formular gedrückt wird, will ich mit diesen Text einen Datensatz suchen.
PHP:
......................
echo "<form action= 'infos.php' method= 'get'>";
while($Element = mysql_fetch_array($DateiArra))
{  
	$ButtonBeschriftung = "'" . $Element['list'] . "'";
  	echo "<input class='Schalter' name='Choice' type='submit' value=$ButtonBeschriftung > <br>";
}  
?></form>....................................

PHP:
$DateiArray = mysql_query("SELECT * FROM sites left join contents 
									on sites.id = contents.id 
										where (sites.site = '$site_name') and (sites.list = '$Choice')
										  order by contents.number");

Das klapt auch sehr gut.
Mein Problem, das Feld 'list' kann auch aus mehreren Wörten bestehen, sodass ich auch meinen Button einen Zeilenumbruch brauche. Das habe ich mit wordwrap gelöst!
PHP:
	$ButtonBeschriftung = "'" . wordwrap($Element['list'], 15 ) . "'";
  	echo "<input class='Schalter' name='Choice' type='submit' value=$ButtonBeschriftung > <br>";
Durch diesen Zeilenumbruch wird natürlich der Suchstring (Choice) verändert, sodass ich mit meiner SQL-Abfrage den Datensatz nicht mehr finden kann. Den Zeilenumbruch \n ausmaskieren kalpt auch nicht. In der Adresszeile meines Browsers steht da wo der Zeilenumbruch stehen müßte %0D%0A .
Es währe klasse wenn meine etwas wirre Erklährungen jemand versteht und mir helfen könnte.
Danke Thomas
 
Danke für den Tip, doch leider klappt es noch nicht. Im Prinzip funktioniert es ja, ich habe einen Test gemacht.

PHP:
// ****
$Choice = "eins zwei";
$DateiArra = mysql_query("SELECT * FROM testtabelle 
							where text = '$Choice' "); 
while($Element = mysql_fetch_array($DateiArra))
{  
  echo($Element['text']) . " SQL Test 1<br>";
}
// ****
$Choice = wordwrap($Choice, 3);
$DateiArra = mysql_query("SELECT * FROM testtabelle 
							where text = '$Choice' "); 
while($Element = mysql_fetch_array($DateiArra))
{  
  echo($Element['text']) . " SQL Test 2<br>";
}
// ****
$Choice = preg_replace('/[\r\n]/',' ',$Choice);
$DateiArra = mysql_query("SELECT * FROM testtabelle 
							where text = '$Choice' "); 
while($Element = mysql_fetch_array($DateiArra))
{  
  echo($Element['text']) . " SQL Test 3<br>";
}

Ergebnis:
eins zwei SQL Test 1
eins zwei SQL Test 3

Wenn ich die Variable aber über "get" bekomme klapt es nicht mehr. Ich habe in preg_replace als Ersetzungszeichen ein Blank ' ' gewählt, vieleicht liegt hier der Fehler.
Kann man den String $Choice irgenwie anzeigen lassen, sodass man alle Steuerzeichen und unsichtbare Sequenzen sieht?
Über weitere Tipps bin ich dankbar.
Gruß Thomas
 
Wenn du beliebig viele Steuerzeichen(\r\n)hintereinander durch ein Leerzeichen ersetzen willst, dann muss es
Code:
preg_replace('/[\r\n]+/',' ',$_GET['Choice']);
heissen.

Kann man den String $Choice irgenwie anzeigen lassen, sodass man alle Steuerzeichen und unsichtbare Sequenzen sieht?
[phpf]rawurlencode[/phpf] zeigt es dir URL-tauglich an... also so, wie in der Adresszeile.
 
Zurück