selfmade01: jacascript onclick [object HTMLCollection]?

hallo
habe hier ein Problem mit der Übergabe von Werten bei onclick.

Alle Werte wie Zahlen werden sauber übergeben

aber beim Text bringt er mir [object HTMLCollection]

Hier was ich absende

  
$i=1;  
$stringLi	.='<li><a href="#tabr'.$i.'" onclick="gethardwaresettings('.$row->testTypeId.',  
							'.$row->testTypeGroup.','.$tabr.')">'._('testtext all').'</a></li>';  

  
function gethardwaresettings(testTypeId, testTypeGroup, tabrid) {  
 var myWindowssss = window.open("", "MsgWindow", "width=200, height=100");  
  myWindowssss.document.write("testid"+testTypeId, "testgroup"+testTypeGroup,"das soll der text sein=>:"+tabrid );  
}  

das ist die Ausgabe

testid2
testgroup1
das soll der text sein=>:[object HTMLCollection]

wieso nimmt der meinen übergeben Text aus dem string $tabr nicht?

Grüß Jürgen

  1. Hallo Jürgen,

    wie befüllst Du denn $tabr unter PHP? Wie sieht denn der generierte HTML-Code aus (im browser mal den Seitenquelltext anschauen). Ist hier beriets der fehlerhafte String enthalten? Ich vermute mal ja, deshalb wäre es relevant zu wissen, wie Du die PHP Variable befüllst.

    $i=1;
    $stringLi .='<li><a href="#tabr'.$i.'" onclick="gethardwaresettings('.$row->testTypeId.',
    '.$row->testTypeGroup.','.$tabr.')">'._('testtext all').'</a></li>';

      
      
    Gruß,  
    the-FoX 
    
    1. Hallo Fox

      im Browser-Quelltext den ich auch überprüft hatte hatte er mir ganz sauber den String ausgegeben also

      tabr1
      stand da

      ich habe es jetzt so gemacht

      ich habe via Javascript an die funtion nur die Zahl übermittelt also hier im Beispiel die "1"
      und in der function habe ich dann den string zusammengesetzt
      das funktioniert nun

      wieso er es zuvor nicht machte? keine Ahnung
      dem hat der text wohl nicht gepasst

      Trotzdem vielen Dank

      Grüße Jürgen

      1. Hallo Jürgen,

        der folgende PHP-Code:

          
        $i=1;  
        $stringLi        .='<li><a href="#tabr'.$i.'" onclick="gethardwaresettings('.$row->testTypeId.',  
                                                                '.$row->testTypeGroup.','.$tabr.')">'._('testtext all').'</a></li>';  
        
        

        erzeugt vermutlich folgenden HTML-Code bei $tabr='MyTabR', $row->testTypeId="TypeId" und $row->testTypeGroup="TypeGruppe":

          
        <li><a href="#tabr1" onclick="gethardwaresettings('TypeId','TypeGruppe','MyTabR')">....</a></li>'  
        
        

        . Ist dem so? tabr1 ist doch der Link-Name, und sicher nicht auch in der PHP-Variablen $tabr enthalten oder?
        Um dem Problem auf die Spur zu kommen, kannst Du nach $i=1 in dem PHP-Code ein echo "TABR:".$tabr; einfügen.

        Auf der Seite des Browsers wird dann der JavaScript Code ausgeführt. Hier könntest Du in die Funktion gethardwaresettings() ein alert('TABRID:'+tabrid); einfügen, um zu prüfen, welchen Inhalt die Variable zu dem Zeitpunkt besitzt.

        Noch ein paar Fragen:

        • existiert eine weitere Variable tabrid im JavaScript Code?
        • könntest Du eine Beispiel Seite anlegen und verlinken? Anhand von Beispielen lassen sich die Probleme besser lokalisieren als in der Theorie

        Grüße,
        the-FoX

        1. Hallo Fox

          vielen Dank für die Hilfe.

          Das mit dem alert hatte ich schon gemacht.

          ich habe das jetzt in den Griff bekommen.

          der link
          <a href="#tabr'.$i.'"

          ist eigentlich Quatsch gewesen und diente am anfang nur um eine Regsiterkarten aufzubauen.
          ich habe also eine seite in der ich eine Regsiterkarte darstelle.
          Bei onclick wird dann die id der jeweiligen regsietrkarte an ajax übergeben.
          Dort wird ein Code generiert der dann in diese jeweilige registerkarte in der die <div id= > steht
          nachgeladen wird.

          ich hatte nur das Problem das er mir in der onclick den kompletten zusammengesetzten Namen nicht übermittelt hat. keine Ahnung warum.

          Jetzt übermittle ich in der onclick nur die reine id und setze den namen dann in der javascript function zusammen. Dort übergebe ich dann das ganze wie url-string und ajax an eine php-unterseite die mir den code generiert der dann in die Regsiterkarte via Ajax geladen wird.

          Ist etwas doof zu erklären, sorry

          Grüße Jürgen

  2. Aloha ;)

    Pauschal-Tipp: Kryptisch anmutende Objekte einfach mal per console.log(xyz); in den Entwicklertools (JS-Konsole) ausgeben lassen, da kann man sich fast immer durch deren Objektstruktur klicken und findet die Lösung oder das Problem meist sofort. Geht zumindest mir so.

    Grüße,

    RIDER

    --
    Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
    ch:? rl:| br:> n4:? ie:% mo:| va:) js:) de:> zu:) fl:( ss:| ls:[