Michael: Sucheingabe Gross + Kleinschreibungsproblem

Hallo Leute,

leider hab ich nicht viel Ahnung mit Umgang dieser Sprache...
Hier unterscheidet die Sucheingabe zwischen Gross- und Kleinschreibung
leider:

function BuildFilter(AForm)
{
var s = '(';
for(i = 1; i < AForm.elements.length-1; i++)
{
  if (AForm.elements[i].value.length>0)
  {
   if (s.length>1)
   { s=s+' and '; }
   s=s+AForm.elements[i].name+"%20like%20%27"+AForm.elements[i].value+"%25%27";
  }
}
  if (s.length>1)
  { s=s+')'; }
  else
  { s=''; }
return s;
}

Diese Texteditor ist als base.js gespeichert. Nun soll ich so umprogrammieren,
das alle Kleinbuchstaben automatisch in Grossbuchstaben umgewandelt werden und
erst dann sucht. Also nicht " Feldname like 'eingabe%' " sondern richtig so:
" Upper(Feldname) like 'EINGABE%' " !! Ups... leider versteh ich da nicht
viel, was ich so umprogrammieren müsste. Es sind eigentlich nur diese Zeile:

s=s+AForm.elements[i].name+"%20like%20%27"+
       AForm.elements[i].value+"%25%27";

ich hab es erst einmal so geändert:

s=s+"UPPER%28"+AForm.elements[i].name+"%29%20like%20%27"+
        AForm.elements[i].value"%25%27";

doch nun fehlt noch bei +"%25%27"; an der Reihe, der am Ende wieder (-->
%'für das like im sql) dranhängen und natürlich den Wert noch in Grossbuchstaben
umwandelt... oh Gott... kann da einer mir helfen?

Michael

  1. das SQL-Script sieht so aus, falls jemand
    über meine Frage sich verwundert hat:

    select * from tabelle where
                 UPPER(feldname) like 'EINGABE%'

    Michael

  2. Hallo Leute,

    leider hab ich nicht viel Ahnung mit Umgang dieser Sprache...
    Hier unterscheidet die Sucheingabe zwischen Gross- und Kleinschreibung
    leider:

    function BuildFilter(AForm)
    {

    »»  var s = '(';
    »»  for(i = 1; i < AForm.elements.length-1; i++)
    »»  {

    if (AForm.elements[i].value.length>0)
      {
       if (s.length>1)
       { s=s+' and '; }
       s=s+AForm.elements[i].name+"%20like%20%27"+AForm.elements[i].value+"%25%27";
      }

    »»  }

    if (s.length>1)
      { s=s+')'; }
      else
      { s=''; }

    »»  return s;

    }

    Diese Texteditor ist als base.js gespeichert. Nun soll ich so umprogrammieren,
    das alle Kleinbuchstaben automatisch in Grossbuchstaben umgewandelt werden und
    erst dann sucht. Also nicht " Feldname like 'eingabe%' " sondern richtig so:
    " Upper(Feldname) like 'EINGABE%' " !! Ups... leider versteh ich da nicht
    viel, was ich so umprogrammieren müsste. Es sind eigentlich nur diese Zeile:

    s=s+AForm.elements[i].name+"%20like%20%27"+
           AForm.elements[i].value+"%25%27";

    ich hab es erst einmal so geändert:

    s=s+"UPPER%28"+AForm.elements[i].name+"%29%20like%20%27"+
            AForm.elements[i].value"%25%27";

    doch nun fehlt noch bei +"%25%27"; an der Reihe, der am Ende wieder (-->
    %'für das like im sql) dranhängen und natürlich den Wert noch in Grossbuchstaben
    umwandelt... oh Gott... kann da einer mir helfen?

    Michael

    Hi Michael...

    ich sehe bei deiner beschreibung nicht ganz durch, aber wenn ich das richtig verstanden habe, willst du ersmal ein char oder ganzes wort in großbuchstaben umwandeln...

    das geht mit
    <großbuchstaben> = <ingroßbuchstabenzuwandelndevariabel>.toUpperCase();

    so... ich hoffe das hilft erstmal....

    was soll in der funktion noch passieren, oder ist diese erklärung ausreichend?

    Luxy

    1. Hi Michael...

      ich sehe bei deiner beschreibung nicht ganz durch, aber wenn ich das richtig verstanden habe, willst du ersmal ein char oder ganzes wort in großbuchstaben umwandeln...

      das geht mit
      <großbuchstaben> = <ingroßbuchstabenzuwandelndevariabel>.toUpperCase();

      so... ich hoffe das hilft erstmal....

      was soll in der funktion noch passieren, oder ist diese erklärung ausreichend?

      Luxy

      sorry michael.. hab ebend erst deine andere info gelesen.. ist wohl doch das falsche, was ich geschrieben habe...

      ich weiß nicht, ob ich inzwischen zu lange gearbeitet habe, aber ich hab voll die probleme zu verstehen, was du genau willst... vielleicht die frage noch einmal anders formuliert sellen....

  3. Hallo Michael,

    die Lösung lautet:

    s=s+"UPPER%28"+AForm.elements[i].name+"%29%20like%20%27"+AForm.elements[i].value.toUpperCase()+"%25%27";

    AForm.elements[i].value ist im javascript ein string-objekt, von dem man die funktion "toUpperCase()" aufrufen kann. ergebnis dieser funktion ist ein string-objekt, was als inhalt die grossbuschtaben-version von AForm.elements[i].value enthält.

    Marco
    PS.: Hoffe dir geholfen zu habe...