Rainer: Strings in Funktion verketten?

Hallo allerseits,

ich komme mit der Verkettung von Strings in einer JS-Funktion nicht zurecht. Framework: prototype.

Mein bisheriges Script:

<script type="text/javascript">  
 function change(script,element)  
  {  
   new Ajax.Updater(element,script, {  
   method: 'get'  
  });  
 }  
  
  
function tAnzeige (field, maxlimit){  
 if (field.value.length == maxlimit){  
  if (field.value.length == maxlimit){  
   change('TAnzeige.php?a="' + document.getElementById("Hersteller").value + '" ','T');  
   }  
  }  
 }  
</script>

#html Ausschnitt#

<input name="Hersteller" id="Hersteller" type="text" value="" maxlength="4" />  
<input name="Typ" id="Typ" type="text" value="" maxlength="3" onkeyup="tAnzeige(this.form.Typ,3);" />  
<div id="T"></div>  

Das funktioniert erst mal.
Nun benötige ich im Javascript bei change() noche einen zeweiten Parameter:

&amp;b="' + document.getElementById("Typ").value + '"

welchen ich nicht angehangen bekomme. Habe schon mit . und + und alle möglichen Varianten von '" oder "' und was weiss ich noch ausprobiert. Es
geht einfach nicht - dabei - es ist bestimmt einfach, ich komm nur nicht drauf.

Kann mir bitte jemand auf die Sprünge helfen?

Gruß Rainer

  1. Sorry, bein kopieren 1x zuviel, geht aber trotzdem

    function tAnzeige (field, maxlimit){
     if (field.value.length == maxlimit){
      change('TAnzeige.php?a="' + document.getElementById("Hersteller").value + '" ','T');
      }
     }

    Gruß Rainer

  2. Manchmal brauchts halt nhur eine Pause:

    change('../ajax/TAnzeige.php?a=' + document.getElementById("Hersteller").value + '&b=' + document.getElementById("Typ").value + ' ','T');

    war das weas ich suchte.

    Gruß Rainer

  3. Lieber Rainer,

    warum enthalten Deine URL-Parameter Quotes? Vergleiche:

    example.com/?a=123&b=234
    example.com/?a="123"&b="234"

    Letzteres ist eher ungewöhnlich, da auf der Serverseite die Quotes als Bestandteil des Wertes ankommen. Willst Du a='"123"' oder willst Du a='123' haben?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Moin!

      Lieber Rainer,

      warum enthalten Deine URL-Parameter Quotes? Vergleiche:

      example.com/?a=123&b=234
      example.com/?a="123"&b="234"

      Und warum enthält die Bildung der URL kein Escaping?

      - Sven Rautenberg

      1. Lieber Sven Rautenberg,

        example.com/?a="123"&b="234"

        Und warum enthält die Bildung der URL kein Escaping?

        Du meinst in etwa so? example.com/?a=%22123%22&b=%22234%22

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. warum enthalten Deine URL-Parameter Quotes? Vergleiche:
        Und warum enthält die Bildung der URL kein Escaping?

        Wenn schon Prototype verwendet wird, empfehle ich einfach die Nutzung eines in Protoype eingebauten Hash-Objektes und dessen Methode Hash#toQueryString, welche so Kleinarbeit einfach für einen erledigt.