Re: Weiß das wirklich niemand ??? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 14.Mai.2002, 20:12.
    Re: Weiß das wirklich niemand ???

      Also ich glaube nicht dass Du hier wirklch Perl <-> Javascript - Übergabegeschichten brauchst (was natürlich geht, es gibt dazu Beispiele in der bib, z.b. den JS-Ticker, der macht sowas), sieht mir eher nach ner ganz normalen Variablen aus. Also Du hast ein Formularfeld und das sieht meinetwegen so aus:

      <input type=text name="kundennummer=">
      

      Dann kannst Du einfach mit $kundenummer auf die Eingabe des Nutzers zugreifen:

      <perl>get "KundenNr==$kundennummer", "adressen";</perl>
      

      Die Ausgabe eines bestimmten DB-Felds geschieht genauso (einfach):

      $Feldname
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Mattias (110 Beiträge) am Dienstag, 14.Mai.2002, 04:17.
    DB-Abfrage

      Hallo Leute, wie kann ich einen manuell eingegebenen Wert in der DB suchen und einen anderen Wert aus dem selben Datensatz ausgeben lassen? Kann ich das Beispiel <perl>get "KundenNr==32631", "adressen";</perl> verwenden, und wenn ja, wie kann ich den Wert "32631" durch den manuell eingegebenen Wert ersetzen?

     Antworten

    Beitrag von Mattias (110 Beiträge) am Dienstag, 14.Mai.2002, 12:16.
    DB-Abfrage -- nochmal etwas konkreter

      Also der Wert für "KundenNr" steht bereits in einem Formularfeld, es geht nur noch darum, ihn gegen die dazu gehörige Emailadresse auszutauschen. Irgendwie hab ich wohl nicht die richtige Variable, denn es kommt immer die Emailadresse des ersten Eintrags.

     Antworten

    Beitrag von Mattias (110 Beiträge) am Dienstag, 14.Mai.2002, 18:52.
    Weiß das wirklich niemand ???

      Oder war meine Frage so dämlich? Sorry, ich tu mich halt noch etwas schwer mit Perl (vor allem, was die Variablenübergabe zwischen Perl und JS angeht, falls das überhaupt möglich ist). Wäre aber unheimlich dankbar für nen guten Tipp (vielleicht geht's ja auch ohne Perl).

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 14.Mai.2002, 20:12.
    Re: Weiß das wirklich niemand ???

      Also ich glaube nicht dass Du hier wirklch Perl <-> Javascript - Übergabegeschichten brauchst (was natürlich geht, es gibt dazu Beispiele in der bib, z.b. den JS-Ticker, der macht sowas), sieht mir eher nach ner ganz normalen Variablen aus. Also Du hast ein Formularfeld und das sieht meinetwegen so aus:

      <input type=text name="kundennummer=">
      

      Dann kannst Du einfach mit $kundenummer auf die Eingabe des Nutzers zugreifen:

      <perl>get "KundenNr==$kundennummer", "adressen";</perl>
      

      Die Ausgabe eines bestimmten DB-Felds geschieht genauso (einfach):

      $Feldname
      

     Antworten

    Beitrag von Mattias (110 Beiträge) am Dienstag, 14.Mai.2002, 20:47.
    Re: Weiß das wirklich niemand ???

      Danke erstmal für die Antwort. Ja, das ist der Knackpunkt an der Geschichte: Ich übergebe die Kundennummer des x. Kunden, aber die DB liefert mir immer nur die Adresse des 1. Kunden. Dachte eigentlich auch, dass das so einfach ist, aber irgendwer spielt da nicht mit. Hier mal der Code:

      <form name="form1">
      <input type="hidden" name="recipient" value="4"></form>
      <perl>get "ID==$recipient", "main";</perl>
      <form name="form2">
      <input type=hidden name="adresse" value=$Email></form>
      

      Normalerweise müsste jetzt im Feld "adresse" die Emailadresse, vom Kunden mit der ID "4" stehen, tut sie aber nicht, sondern es steht immer die Adresse des ersten Eintrags da.

     Antworten

    Beitrag von Syno (13 Beiträge) am Dienstag, 14.Mai.2002, 20:51.
    Re: Weiß das wirklich niemand ???

      Ich glaube die Antwort ist ganz einfach.

      Groß- und Kleinschreibung sind entscheidend.

      Das Id-Feld in einer BP-Datenbank heißt "Id" und nicht "ID". Ich vermute mal das ist der Fehler.

      Gruß
      Syno

     Antworten

    Beitrag von Mattias (110 Beiträge) am Dienstag, 14.Mai.2002, 20:58.
    Re: Weiß das wirklich niemand ???

      Das hatte ich befürchtet. Habe mittlerweile den missverständlichen Feldnamen "ID" in "Code" umbenannt und auch die Anfrage entsprechend abgeändert, aber das Ergebnis ist das gleiche.

      Kann ich davon ausgehen, wenn immer die Adresse des ersten Eintrags ausgegeben wird, dass entweder das Feld "Code" oder die Code-Nummer nicht gefunden wird?

     Antworten

    Beitrag von Syno (13 Beiträge) am Dienstag, 14.Mai.2002, 22:54.
    Re: Weiß das wirklich niemand ???

      Also eigentlich istdas Verhalten ein typisches Anzeichen dafür, das die Variable nicht gesetzt ist.

      Eine Anweisung wie

      get "feld==$eineVariable", "datenbank"
      

      die immer den ersten Eintrag ausgibt, obwohl mehr drin sind, sagt eigentlich immer, dass $eineVariable undefiniert ist.

      Ist Dein vorheriges Codebeispiel in einem Template? Wenn ja, dann kann es nicht funktionieren. Die Funktionalität muß zweigeteilt sein:
      1. Das Formular in einem Template
      2. Die Ausgabe via get in einem anderen

      Es ist auch möglich dies in einem Template zu vereinigen, allerdings muß man dafür sorgen, dass das Template in die verschiedenen Bereiche verzweigt aber nicht gleichzeitig beide macht.

      Ich hoffe ich habe Dich nicht falsch verstanden, aber nach meinem Verständnis müßte es so sein:

      Formulartemplate hat ein INPUT Feld mit dem Namen "code" (z.B.).
      Durch drücken des Submit Knopfes wird ein anderes Template oder das gleiche Template nocheinmal aufgerufen. Erst mit diesem Aufruf wird aus dem Formular-Feld "code", die Variable "$code" und erst dann auch als solche auswertbar.

      Oder habe ich Dich jetzt völlig falsch interpretiert?

      Gruß
      Syno

     Antworten

    Beitrag von Mattias (110 Beiträge) am Mittwoch, 15.Mai.2002, 02:32.
    Ups, das scheint wohl doch nicht so einfach zu sein ...

      Also der Wert "4" im Formfeld "recipient" wurde per JS aus einem anderen Template schon beim Laden mit eingelesen. Demnach müsste doch $recipient, sobald das Form fertig eingelesen ist, eigentlich belegt sein. Und dann kann doch die Variable auch ungehindert weiter verarbeitet werden. Oder nicht?
      Andererseits, wenn ich den Inhalt von "recipient" im 1. Template festlege und im 2. Template als $recipient abfrage, will das auch net so recht funzen -- klar, "recipient.value" ist ja mitsamt dem 1. Template weg vom Fenster. Ich weiß, ich nerve, aber ich krieg's einfach nicht gebacken.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 15.Mai.2002, 14:35.
    Re: Ups, das scheint wohl doch nicht so einfach zu sein ...

      Nein, Du nervst nicht, das kriegen wir schon hin ;-)

      Mir fehlt noch so'n bisschen das Drumherum zum Verständnis: Die 4 kommt aus einem anderen Template per JS?? Vielleicht kannst Du mal "das grössere Ganze" erklären, was Du genau machen willst, vielleicht gibts nen einfacheren Lösungsansatz...

      Ansonsten, wenn ich mir Deinen Code so anschau, gibts hier glaub ich ne Irritation bzgl. Server/Client - Javascript wird auf dem "Client", also im Browser ausgeführt - baseportal/Perl auf dem "Server" - das sind zwei unterschiedliche Geschichten und Du kannst nicht ohne weiteres Variablenwerte zwischen den beiden austauschen, diese Werte müssen immer irgendwie (durch ein Formular, das Laden einer Seite o.ä.) übertragen werden... Also wenn man sich Deinen Code genauer anschaut:

      <form name="form1">
      <input type="hidden" name="recipient=" value="...dieser Wert wird per JS gesetzt, richtig??...."></form>
      <perl>
      get "ID==$recipient", "main";     # das $recipient ist bei der Ausgabe der Seite (noch) NICHT mit dem per JS gefüllten Wert gesetzt!!
      </perl>
      <form name="form2">
      <input type=hidden name="adresse" value=$Email></form>
      

      Das "ID" wäre übrigens kein Problem, wenn Du nicht tatsächlich das baseportal-Id (grosses I, kleines d) meinst... Und hinter das "recipient" gehört ein "=" wenn Du es an baseportal übertragen willst...

      Äh, ja, irgendwie verständlich? ;-) Ich fürchte ohne das Verständnis, um was es eigentlich genau geht lässt sich das nicht lösen ;-))

     Antworten

    Beitrag von Mattias (110 Beiträge) am Mittwoch, 15.Mai.2002, 18:47.
    Re: Ups, das scheint wohl doch nicht so einfach zu sein ...

      Das mit dem Server-Client-Problem ist mir gestern Nacht auch noch irgendwie gekommen. Es scheint sich demnach auf die Frage zu reduzieren, wenn ich einen Wert in Richtung Server schicke, wo schicke ich ihn dann konkret hin, damit ich ihn weiter verarbeiten kann? Hätte mich wohl schon ein bissl eher mit serverseitiger Programmierung befassen sollen, dann würde ich jetzt nicht so auf dem Schlauch stehen.

      Ich will so ne Art Login-System bauen, das aus einer Datenbank mit Codenummern und den dazu gehörigen Emailadressen besteht. Wenn der User eine Codenummer eingibt, dann geht eine Email an den Besitzer der Codenummer. Bis jetzt hab ich das so gemanaget, dass ich ein Frameset hab, dessen Mainframe (Template 1) per Input die Codenummer aufnimmt, an das Topframe schickt und danach eine neue Seite lädt (Template 2), die die Codenummer gleich beim Laden in das Feld "recipient" einfügt. Und spätestens hier ist mir klar geworden, dass man die Codenummer ja an den Server schicken muss, bevor man sie dort weiter verarbeiten kann, und dass es doch einfacher wäre, sie gleich nach der Eingabe mit dem selben Formular fort zu schicken. Aber wohin, das ist mir noch nicht ganz klar. Ich muss sie ja auch wieder finden.

      Ich hoffe, ich hab mich jetzt einigermaßen verständlich ausgedrückt. Hmm, wenn ich mir das Problem so anschaue, scheint die Lösung ziemlich nahe zu liegen. Ich komm trotzdem nicht drauf.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 16.Mai.2002, 01:58.
    Re: Ups, das scheint wohl doch nicht so einfach zu sein ...

      Mmh, ja, ich denke auch, es wäre besser das Formular gleich an den Server zu schicken, statt das kompliziert mit Javascript zwischen den Frames hin- und herzuschieben. Wo kommt der Formularinhalt an? Bei dem Template das Du angibst, oft isses dasselbe dass das Formular aufgebaut hat, kann aber auch ein anderes sein. Man gibt das beim "<form..." beim "action=..." mit an:

      <form action="baseportal.pl?htx=/deinname/template" method="post" enctype="multipart/form-data">
      <input type=text name="bla=">
      </form>
      

      Damit wird das Formular an "/deinname/template" geschickt. Der Wert, den der Nutzer eingegeben hat steht einfach in der Variable $bla

      Alles klar? ;-)

     Antworten

    Beitrag von Mattias (110 Beiträge) am Dienstag, 21.Mai.2002, 01:40.
    Re: Ups, das scheint wohl doch nicht so einfach zu sein ...

      Ihr habt ja einen Wahnsinnstraffic hier auf dem Board! Weiß gar nicht, ob du meine Antwort noch findest. Also dein Ansatz war Gold wert: klar, die URL! Ich transportiere jetzt den ganzen Wust an Formulardaten auf diesem Weg von der Eingabe über den DB-Abruf bis ins Postfach, und es funzt wie geschmiert. Also herzlichen Dank!

     Antworten


     
 Liste der Einträge von 47251 bis 47401:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.11s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!