Ergebnis 1 bis 9 von 9
  1. #1
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    65

    serverseitiger Aufruf einer JS-Funtion

    Hallo!
    Ich befülle schon erfolgreich ein Formular indem ich aus einer Auswahlliste (erstellt mit AJAX) einen Artikel auswähle und mir serverseitig weitere Daten zu diesem Artikel übermittelt werden. Ich klicke den Artikel in der Auswahlliste an, die Artikelnummer wird übernommen, und es werden weitere Daten in die korrekten Felder geladen.
    Wenn ich jetzt aber die Auswahlliste ignoriere, die komplette Artikelnummer händisch eingebe, und mit Tabulator zum nächsten Eingabefeld marschiere, werden diese Felder noch nicht befüllt. Ich bekomme es einfach nicht hin serverseitig im PHP-Script die clientseitige JS-Funktion aufzurufen... :-(

    zuerst gehts in JS mit:
    PHP-Code:
    onblur='lookupArtikelOhneKlick(this.value, $c);' 
    hier die JS-Funktion:
    PHP-Code:
    function fillArtikelnummerOhneKlick (PartnumberBeschreibungLagerort ,LP ,EKMOQcounter) {
        $(
    "#Partnumber"+counter).val(Partnumber);    
        $(
    "#Beschreibung"+counter).val(Beschreibung);    
        $(
    "#LP"+counter).val(LP);
        $(
    "#EK"+counter).val(EK);
        $(
    "#MOQ"+counter).val(MOQ);
        $(
    "#suggestionsArtikel"+counter).hide();

    hier die Serverseite:
    PHP-Code:
    echo 'onLoad='fillArtikelnummerOhneKlick(
    \
    ''.$result->Partnumber.'\', 
    \''
    .$result->Beschreibung.'\', 
    \''
    .$result->Lagerort.'\', 
    \''
    .$result->LP.'\', 
    \''
    .$result->EK.'\',
    \''
    .$result->MOQ.'\',
    \''
    .$c.'\'
    )'
    ;' ' ;

    ....und hier ruf ich sicher die Funktion falsch auf.. Muss ich hier vielleicht auch serverseitig die Script-Sprache noch einmal mit angeben? Oder fehlen wieder irgendwelche Kommas?

  2. #2
    Avatar von miniA4kuser
    miniA4kuser ist offline Lounge-Member
    registriert
    12-07-2006
    Beiträge
    3.034

    AW: serverseitiger Aufruf einer JS-Funtion

    Zitat Zitat von Daktari Beitrag anzeigen
    hier die Serverseite:
    PHP-Code:
    echo 'onLoad='fillArtikelnummerOhneKlick(
    \
    ''.$result->Partnumber.'\', 
    \''
    .$result->Beschreibung.'\', 
    \''
    .$result->Lagerort.'\', 
    \''
    .$result->LP.'\', 
    \''
    .$result->EK.'\',
    \''
    .$result->MOQ.'\',
    \''
    .$c.'\'
    )'
    ;' ' ;

    ....und hier ruf ich sicher die Funktion falsch auf.. Muss ich hier vielleicht auch serverseitig die Script-Sprache noch einmal mit angeben? Oder fehlen wieder irgendwelche Kommas?
    Was soll deiner Meinung nach hierbei herauskommen?
    PHP-Code:
    echo 'onLoad='fillArtikelnummerOhneKlick
    Genauso frage ich mich was das hier sein soll:
    PHP-Code:
    )';' ' ; 
    Nimm doch mal Stift und Papier und setze mal den String mit Beispielen für deine Variablen aus und du wirst sehen wo Maskierungszeichen fehlen etc...
    Hoffe ich konnte helfen

  3. #3
    Daktari ist offline Eroberer
    registriert
    17-06-2011
    Beiträge
    65

    AW: serverseitiger Aufruf einer JS-Funtion

    Das "onLoad" ist Schmarrn... okay, es war einer meiner verzweifelten Versuche.

    SO hat es letztendlich funktioniert:
    PHP-Code:
    echo '<script type="text/javascript">
    fillArtikelnummerOhneKlick(
    \''
    .$result->Beschreibung.'\', 
    \''
    .$result->Lagerort.'\', 
    \''
    .$result->LP.'\', 
    \''
    .$result->EK.'\',
    \''
    .$result->MOQ.'\',
    \''
    .$c.'\'
    );</script>'

    Danke und Gruß!
    Stefan

  4. #4
    Avatar von miniA4kuser
    miniA4kuser ist offline Lounge-Member
    registriert
    12-07-2006
    Beiträge
    3.034

    AW: serverseitiger Aufruf einer JS-Funtion

    Das kommt halt durch die ganze Hochkommasuppe! Warum machst du nicht einfach folgendes?
    PHP-Code:
    echo "<script type=\"text/javascript\">
    fillArtikelnummerOhneKlick(
    '
    $result->Partnumber', 
    '
    $result->Beschreibung', 
    '
    $result->Lagerort', 
    '
    $result->LP', 
    '
    $result->EK',
    '
    $result->MOQ',
    '
    $c');</script>"
    Hoffe ich konnte helfen

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.750

    AW: serverseitiger Aufruf einer JS-Funtion

    @miniA4kuser: weil das so nicht funktioniert - da fehlen wenn dann ein paar geschweifte Klammern. Aber ich finde es immer sehr unübersichtlich, wenn in Stringliteralen Variablen hineingeparst werden. Ich mische da immer einfache und doppelte Anführungsstriche so, dass ich möglichst wenig maskieren muss.

  6. #6
    Avatar von Albu
    Albu ist offline Foren-Gott
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: serverseitiger Aufruf einer JS-Funtion

    Sobald die Beschreibung mehrzeilig ist, gibt es sowieso noch ein Problem.

    Außerdem kennt PHP auch printf.
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

  7. #7
    Avatar von miniA4kuser
    miniA4kuser ist offline Lounge-Member
    registriert
    12-07-2006
    Beiträge
    3.034

    AW: serverseitiger Aufruf einer JS-Funtion

    @kkapsner: Habe mir mal die Mühe gemacht und php angeschmissen und siehe da es funktioniert. Welche Klammern sollen denn fehlen und warum? Ist ja im prinzip das selbe wie mit der Hochkommasuppe nur direkt geparst. Dann dürfte ja beides nicht funktionieren.

    @Albu: Welches Problem meinst du? (Link zu Lesestoff parat?)
    Hoffe ich konnte helfen

  8. #8
    Avatar von jspit
    jspit ist offline Lounge-Member
    registriert
    19-06-2009
    Beiträge
    1.712

    AW: serverseitiger Aufruf einer JS-Funtion

    Die Zeilenumbrüche (CR,LF) im string von echo landen voll im Browserquellcode. Das Zeilenumbrüche in js-Anweisungen an einigen Stellen Probleme bereiten können, dürfte bekannt sein. Anstelle sich die Anweisungen über Hochkommatas + div. Escaps zusammenzubasteln, nutze ich in PHP lieber den Verkettungsoperator (.). Andeutungsweise :
    PHP-Code:
    $out '<script type="text/javascript">';
    $out .= 'fillArtikelnummerOhneKlick( '$numpar .');';
      :
    echo 
    $out
    Geändert von jspit (28-02-2012 um 10:32 Uhr)

  9. #9
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.750

    AW: serverseitiger Aufruf einer JS-Funtion

    @miniA4kuser: tatsächlich... hatte da irgendwas im Kopf, dass man Objektzugriffe mit geschweiften Klammern "klammern" muss.

    ich mach' das ja immer so wenn ich's strukturieren will:
    Code:
    echo '<script type="text/javascript">' .
    	'fillArtikelnummerOhneKlick( ' . $numpar . ');' .
      :
    	'</script>';

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 25-02-2008, 13:04
  2. automatischer Aufruf einer Funktion
    Von tbaddade im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 27-03-2006, 10:14
  3. Aufruf einer URL in neuem Frame
    Von oldsurf50 im Forum JavaScript
    Antworten: 7
    Letzter Beitrag: 14-03-2006, 22:32
  4. Aufruf einer Word Datei nach SUBMIT
    Von tseng im Forum Serverseitige Programmierung
    Antworten: 5
    Letzter Beitrag: 09-08-2005, 14:47
  5. Aufruf einer Word Datei nach SUBMIT
    Von tseng im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 09-08-2005, 11:32

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •