Change Text problem

Anacondi

Erfahrenes Mitglied
Hallo php gemeinde
ich stehe vor dem problem, das, wenn ich auf ein bild klicke der button nicht angezeigt wird.
Könnt ihr mir sagen, wo hier mein fehler ist?
Habe mal den ausschnitt der Tabelle hier gepostet

PHP:
    <td><?php $q_nummer2 = $abgeschlossen + 2;

	$quest2 = "SELECT * from quest WHERE nummer = $q_nummer2"; 
$result4 = mysql_query ($quest2);  if (mysql_num_rows ($result4) > 0)  
{ $data4 = mysql_fetch_array ($result4);}

$quest_nummer = $data4["nummer"]; ?>


<img src="<?php echo $data4["bild_klein"]; ?>"
style="width:130px;cursor:pointer; height:80px"; 

onClick="ChangeText('<?php echo $text1; echo "<br>";?>

 <form action='q1.php?nummer=<?php echo $quest_nummer; ?>' method='post'>
<input type='submit' value='starten'>
</form>')"/></td>

meine fuction sieht so aus:
HTML:
 function ChangeText(NewText)
   {
       document.getElementById('Textausgabe').innerHTML=NewText;
   }

wenn ich den button weg lasse, wird der text angezeigt, aber mit dem button da drin nur kaos.
 
Zuletzt bearbeitet:
1.) Dieses Quälcode gucke ich mir definitiv nicht an. Einrücken!! und mal ne Leerzeile!! tut auch ganz gut.
2.) Finde zunächst heraus, ob das Problem PHP- oder Javascript-spezifisch ist.
 
besser so? sorry, das ich das so reingenallt hatte
wie gesagt, ohne den <form> abschnitt gehts, aber den button brauch ich da auch
 
Da hat alxy absolut recht!

Kleiner Tipp aber trotzdem. Schau dir mal den Seitenquelltext an, vielleicht siehst du da ja was falsch läuft.
 
item: Wie alxy schon schrieb. Das in diesem Code ein Fehler ist den du nicht findest glaube ich dir sofort. Ich finde ich ihn auch nicht, denn ich habe mein Klammernzählabakus nicht dabei.

item: Bist du sicher das deine Variablen so heissen sollen? Nunja, ist diene Sache wie aus $data4 $text2 und aus

Zu deinem Problem:
Wo hast du da ein Button in deinem Code? Meinst du damit den img?
 
Hi, ja, der button ist das Bild.
die function OnClick geht ja, so lange ich dieses Form da nicht mit rein mache, dann wird alles angezeigt, was in $text1 steht.
 
besser so? sorry, das ich das so reingenallt hatte
wie gesagt, ohne den <form> abschnitt gehts, aber den button brauch ich da auch

Ich habe mal dein Code formatiert
PHP:
<td>
<?php 
	$q_nummer2 = $abgeschlossen + 2;
		$quest2 = "SELECT * from quest WHERE nummer = $q_nummer2"; 
		$result4 = mysql_query ($quest2);  
		if (mysql_num_rows ($result4) > 0) {
			$data4 = mysql_fetch_array ($result4);
		}
		$text1 = $data4["name"];
		$text2 =$data4["bezeichnung"];
		$text3 = $data4["belohnung_text"];
		$quest_nummer = $data4["nummer"]; 
?>
	<img 
		src="<?php echo $data4["bild_klein"]; ?>"
		style="width:130px;cursor:pointer; height:80px"; on
		Click="ChangeText('<?php echo $text1; echo "<br>";?>
<!-- hier fehlt ein \> um den img-Tag zu schliessen -->
 	<form action='q1.php?nummer=<?php echo $quest_nummer; ?>' method='post'>
		<input type='submit' value='starten'>
	</form>')"/>
</td>

Da fällt doch sofort auf, dass du deinen img-Tag nirgends schliesst. Es fehlt irgendwo ein > (oder noch besser ein \>)

ALso, formatieren und die meisten Fehler sieht man von selbst
 
das ist ja mein Problem. schließe ich den img tag an der genannten stelle, erscheint der startn button unter dem Bild. er soll aber erst erscheinen bei onvclick, also wenn ich das bild angeklickt habe.
Deshalb habe ich den img Tag ganz unten nach dem </form> geschlossen
 
Da kannst innerhalb des Open-Tags eines IMG kein Formular stecken. Das ict als ob die das Steuerrad des Autos halb im Motorblock drin bauen würdest.

Dein Javascript blendet aber auch kein Tag ein.

Also, du musst den PHP-Code so erstellen dass alle Tags da sind. Im Form kannst du ja über das hidden-Attribut das Formular zuerst ausblenden.

PHP:
<td>
<?php 
	$q_nummer2 = $abgeschlossen + 2;
		$quest2 = "SELECT * from quest WHERE nummer = $q_nummer2"; 
		$result4 = mysql_query ($quest2);  
		if (mysql_num_rows ($result4) > 0) {
			$data4 = mysql_fetch_array ($result4);
		}
		$text1 = $data4["name"];
		$text2 =$data4["bezeichnung"];
		$text3 = $data4["belohnung_text"];
		$quest_nummer = $data4["nummer"]; 
?>
	<img 
		src="<?php echo $data4["bild_klein"]; ?>"
		style="width:130px;cursor:pointer; height:80px"; on
		Click="ChangeText('<?php echo $text1; echo "<br>";?>')"
	/>
 	<form  hidden="true" action='q1.php?nummer=<?php echo $quest_nummer; ?>' method='post'>
		<input type='submit' value='starten'>
	</form>
</td>

Dann über Javascript das Attribut entfernen um das Formular einzublenden
 
:suspekt:
Wenn irgendwas zuerst unsichtbar sein soll, macht entsprechende CSS-Werte.

Die Klammerbereiche von irgendwelchen Tags zu verändern...
da sollte in einem alles FEHLER schreien.
Woher sollte der Browser überhaupt wissen,
dass die ganzen ' dazwischen nicht JS-Stringbegrenzungen sind?
 
Zurück