zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Funktionsaufruf bei onclick-Event funktioniert nicht

Antwort
 
LinkBack Themen-Optionen Ansicht
  #21 (permalink)  
Alt 16.12.2011, 13:32
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.02.2009
Beiträge: 41
Ulixes befindet sich auf einem aufstrebenden Ast
Standard

@Scheppertreiber:

Zitat:
JS hat mit "Variablen" nichts zu tun, das kann jede Programmiersprache.
Ja schon klar. Deshalb hab ich ja mal die passende PHP-Variable eingefügt.

@protonenbeschleuniger
Ich will euch definitv helfen. Ich bin euch auch sehr dankbar, dass ihr mich hier versucht, zu unterstützen und bitte die Missverständnisse zu entschuldigen.

Okay, also ich versuch es hier einfach nochmal so einfach wie möglich zu machen. Mein PHP-Code sieht nun wie folgt aus:

PHP-Code:
<?xml version="1.0" ?>
<!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>
<title>Sternwarte Gönnsdorf :: Puzzle</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
<!--
[B]function tag(name) {
    alert(name);
}[/B]
//-->
</script>
</head>
<body>
<?php 
    
try {
      
$dbh = new PDO('mysql:host=localhost; dbname=sternwarte''root''');
      echo 
'<div id="puzzle">';
      echo 
"<table border=0>";
      echo 
'<tr>';
      
      
$stmt $dbh->prepare("SELECT * FROM puzzle");                                                             
      
      
$stmt->execute();
      
$result$stmt->fetchAll();
      foreach(
$result as $key){
        if(
$key[2]==and $key[1]>=2){
            echo 
'</tr>';
            echo 
'<tr>';
        }
            if(
$key[3]==''){
                echo 
'<td class="grey" width="32" height="26">';
                echo 
$key[1].','.$key[2];
                echo 
'</td>';
            }
            else{
                
$id$key[1].$key[2];
                echo 
'<td value="'.$key[3].'" id="'.$id.'" width="32" height="26" onClick="tag([B]"Max Mustermann"[/B])">';
                echo 
'</td>';                
            }
      }
      
$dbh null;
      
      echo 
'</tr>';
      echo 
'</table>';
      echo 
'</div>';
      } 
      catch (
PDOException $e) {
        print 
"Error!: " $e->getMessage() . "<br/>";
        die();
     }
?>
</body>
</html>
Ich hab also einfach nur mal versucht, einen String weiterzugeben. Die Tabelle ist jetzt auch hinter dem Doctype (Danke für den Hinweis).
Jetzt zeigt mir der Browser den HTML-Code so an:

HTML-Code:
<?xml version="1.0" ?>
<!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>
<title>Sternwarte Gönnsdorf :: Puzzle</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
<!--
function tag(name) {
    alert(name);
}
//-->
</script>
</head>
<body>
[B]<div id="puzzle"><table border=0><tr><td value="Sarah Scharf" id="11" width="32" height="26" onClick="tag("Max Mustermann")"></td>[/B]
</html>
--> Fehler: "syntax error tag( "

Wenn ich nur eine Zahl in die Klammern schreibe, funktioniert das Ganze. Mit einem String nicht?!
Mit Zitat antworten
Sponsored Links
  #22 (permalink)  
Alt 16.12.2011, 14:56
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

den XML Prolog würde ich rauschmeissen, damit bringst du ältere IEs in den Quirksmodus und er ist nicht nötig.
Zitat:
Zitat von Ulixes Beitrag anzeigen
HTML-Code:
[B]<div id="puzzle"><table border=0><tr><td value="Sarah Scharf" id="11" width="32" height="26" onClick="tag("Max Mustermann")"></td>[/B]
Jetzt zum ersten Mal sehen wir die fehlerhafte Stelle und eigentlioch müßtest du das auch sehen, wenn du dir den Quelltext im Firefox anschaust. Der onclick Event sieht so aus: onClick="tag(" das ist fehlerhaft.
Mit Zitat antworten
Sponsored Links
  #23 (permalink)  
Alt 16.12.2011, 15:17
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.02.2009
Beiträge: 41
Ulixes befindet sich auf einem aufstrebenden Ast
Standard

Ja, genau und genau das versteh ich nämlich nicht. Ich hab doch "Max Mustermann" in die Klammern geschrieben (einmal mit und auch ohne Anführungszeichen). Da kommt es zu genau dieser Fehlermeldung. Wenn ich aber eine Zahl in die Klammern schreibe, funktioniert das Ganze. Es ist mir ein Rätsel.
Mit Zitat antworten
  #24 (permalink)  
Alt 16.12.2011, 16:40
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Max Mustermann ist eine Zeichenkette, deshalb muss diese in Anführungszeichen, aber du kannst nicht innerhalb von Anführungszeichen unmaskierte Anführungszeichen verwenden. Entweder du benutzt für die Zeichenkette einfache Anführungszeichen statt doppelte oder was besser wäre, du koppelst den JS Code vom HTML ab.
Mit Zitat antworten
  #25 (permalink)  
Alt 16.12.2011, 20:08
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.02.2009
Beiträge: 41
Ulixes befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Entweder du benutzt für die Zeichenkette einfache Anführungszeichen
Darauf muss man erstmal kommen. ...naja, jetzt hab ich es geändert:

PHP-Code:
echo "<td value='".$key[3]."' id='".$id."' width='32' height='26' onClick='tag('Matze')'>"
und es kommt folgender HTML-Code bei raus:

HTML-Code:
<!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>
<title>Sternwarte Gönnsdorf :: Puzzle</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
<!--
function tag(name) {
    alert(name);
}
//-->
</script>
</head>
<body>
<div id="puzzle"><table border=0><tr><td value='Sarah Scharf' id='11' width='32' height='26' onClick='tag('Matze')'></td>
</html>
Es kommt wieder der Fehler "syntax error: tag( "

Hättest du einen Vorschlag, wie ich das seperat in JavaScript mache?
Mit Zitat antworten
  #26 (permalink)  
Alt 16.12.2011, 20:16
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Du darfst NUR die inneren Anführungszeichen ändern, die äußeren sind ok.
Mit Zitat antworten
  #27 (permalink)  
Alt 18.12.2011, 21:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.02.2009
Beiträge: 41
Ulixes befindet sich auf einem aufstrebenden Ast
Standard

Sorry, ich hatte am Wochenende keine wirkliche Zeit.

So mein PHP-Quellcode sieht nun wie folgt aus:

PHP-Code:
echo '<td value="'.$key[3].'" id="'.$id.'" width="32" height="26" onClick="tag('Max Mustermann')">'
Das Problem ist nun, dass jetzt das PHP streikt. Ich bekomme logischerweise die folgende Fehlermeldung: "Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' "

Wie könnte ich denn den JS-Code separat schreiben?
Mit Zitat antworten
  #28 (permalink)  
Alt 18.12.2011, 21:42
body.ie {display: grotte}
XHTMLforum-Mitglied
 
Registriert seit: 09.01.2011
Beiträge: 841
take_a_7 sorgt für eine eindrucksvolle Atmosphäretake_a_7 sorgt für eine eindrucksvolle Atmosphäre
Standard

Moin,

Junge, Junge. Das sind absolute Grundlagen! Du musst in einem von einfachen Anführungsstrichen (') begrenzten String einfache Anführungsstriche natürlich escapen!
PHP-Code:
echo 'Hallo. Das ist ein einfaches Anführungszeichen: \' Und hier kommt mehr Text.'
JavaScript kannst du in externe Dateien auslagern, die du per
HTML-Code:
<script src="foo.js" type="application/javascript"></script>
einbindest. Dort kannst du auch Event-Handler registrieren. Entweder ganz einfach:
Code:
document.getElementById('foo').onclick = function() {
    alert('Du hast auf #foo geklickt!');
}
Oder etwas anspruchsvoller, aber auch flexibler:
Code:
document.getElementById('foo').addEventListener('click', function() {alert('Du hast auf #foo geklickt!');}, false);
Da braucht IE < 9 aber Nachhilfe, denn er kann nur das proprietäre attachEvent. Mehr Info findest du unter anderem im Mozilla Developer Network.

gruß,
take
Mit Zitat antworten
  #29 (permalink)  
Alt 18.12.2011, 21:59
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 09.02.2009
Beiträge: 41
Ulixes befindet sich auf einem aufstrebenden Ast
Standard

Okay, jetzt funktioniert es! Vielen Dank, Jungs! Ich hab das letzte Mal vor ein paar Jahren programmiert und deshalb hab ich im Moment so ein paar Probleme!
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
getElementById funktioniert nicht als funktionsaufruf rs-web Javascript & Ajax 15 06.08.2011 09:45
CSS Event anstelle von JS Event nutzen 1chris Javascript & Ajax 6 08.09.2010 10:11
Befehl für Link mit onClick Synoxis Javascript & Ajax 9 25.05.2010 15:50
dtd und css in php funktioniert im IE nicht!!! da-lick CSS 17 09.06.2007 16:44


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:06 Uhr.