Ankündigung

Einklappen
Keine Ankündigung bisher.

JS ohne Event

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JS ohne Event

    Hallo,
    habe mal wieder ein Problem.
    Folgenden Aufbau habe ich:

    -Form
    -u.a Dropdown (Kunden)
    wird im Dropdown ein Kunde ausgewählt (onchange), wird mit Ajax dynamisch ein weiteres Dropdown erzeugt, in denen dann die Projekte zum jeweiligen ausgewählten Kunden stehen.
    So das funktioniert auch alles soweit.
    Nur möchte ich jetzt wenn ich den Datensatz ändern möchte, wieder logischerweise alle Daten laden.
    Und genau das mein Problem, wie bekomm ich es hin, dass er wenn ein Kunde ausgewählt ist, die onchange-Funktion aufruft, die dann das 2. Dropdown erzeugt?

    Ein passendes Event habe ich leider nicht gefunden.

    PHP-Code:
    <select name="kunde" id="kunde" onchange="KundenProj()">
    <option value="0">kein Kunde</option>
    <?php $Kunden adressen::get_adressen();
    foreach(
    $Kunden as $key => $kn)
    ?>
      <option value="<?=$kn['adressen_id']; ?>
    <?php if($kn['adressen_id']==$rs['adresse_id']){echo "selected";} ?> > //hier würde ich jetzt onchange aufrufen 
    <?= $kn['adressen_name']; ?></option>
     <?php
    }
    ?>
    </select>
    Wie kann ich das realisieren?


  • #2
    Gar nicht. Du setzt gleich das selected und fertig.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Das solltest du auf der Serverseite machen, du weisst ja schon bevor das HTML erstellt wird ob, und wenn ja, welcher Kunde ausgewählt ist.

      Und wenn du dir unbedingt eine Routine sparen willst ruf die Funktion in $(document).ready() auf (jQuery).
      You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

      Kommentar


      • #4
        http://www.php-fig.org/psr/psr-1/
        http://www.php-fig.org/psr/psr-2/

        So würde ich das in angular machen: http://jsfiddle.net/caJ6D/2/
        Muss man nur etwas Ajax dranklemmen und schon läuft das
        Naja, sicher wenig hilfreich... Aber ich nutze gerade jede Gelegenheit mich mit Angular zu beschäftigen
        Standards - Best Practices - AwesomePHP - Guideline für WebApps

        Kommentar


        • #5
          danke schon mal für die Antworten.
          Jetzt rufe ich mit ready die Funktion auf wie chorn geschrieben hat.
          Nur ist jetzt $_POST undefiniert, weswegen dann auch meine sql natürlich fehlschlägt.

          PHP-Code:
          $.ajax
              
          ({
                 
          url:  "getKundenProj.php",
                 
          type"POST",
                 
          data"kndid=" + $("#kunde").val(), 
          PHP-Code:
          <script>
          $(
          document).ready()
          {
              
          getKundenProj();
          }
          </script> 
          Ist die Datei doch noch nicht fertig wenn die Funktion aufgerufen wird? Oder hat jemand eine Idee warum die leer ist oO

          @rkr: Ich werde mir mal, bei Gelegenheit, AngularJS anschauen. Aber glaube für mein aktuelles Problem wäre es keine Lösung. Die Einarbeitungszeit wäre zu hoch^^
          Außerdem sieht es sehr kompliziert aus.

          Kommentar


          • #6
            Debugging

            [edit]

            Ich finds aber relativ sinnfrei. Dein POST/Ajax wird jetzt nämlich
            Und genau das mein Problem, wie bekomm ich es hin, dass er wenn ein Kunde ausgewählt ist, die onchange-Funktion aufruft, die dann das 2. Dropdown erzeugt?
            durchlaufen und das zweite Select initial darstellen, obwohl dort doch evtl. schon ein Wert gesetzt ist. Du müsstest also Dein Select oder Deinen Ajax-Response sowieso umschreiben.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Hallöchen,

              Zitat von junichs Beitrag anzeigen
              @rkr: Ich werde mir mal, bei Gelegenheit, AngularJS anschauen. Aber glaube für mein aktuelles Problem wäre es keine Lösung. Die Einarbeitungszeit wäre zu hoch^^
              Außerdem sieht es sehr kompliziert aus.
              Da liegst du meines Erachtens völlig daneben, denn die Lernkurve bei AngularJS ist (im Verlgeich zu bspw. Ember.js) ziemlich steil. Gerade die grundlegenden Mechaniken hat man locker in 3-4 Tagen drauf. Und die Mühe lohnt sich definitiv, denn bei der Entwicklung von interaktiven Web-Anwendungen spart man enorm viel Code, dank der Automatismen im Bereich Data-Binding, und muss sich nicht mit organisch wachsenden jQuery-Suppen herumplagen. Ich persönlich nutze jQuery eigt. nur noch für diverse Effekte und Spielereien bei kleinen Websites. Für alles andere ist es mir zu ineffizient.

              Viele Grüße,
              lotti

              Kommentar


              • #8
                Hi,

                das kann sein, dass es effizienter ist.
                Nur auf den ersten Blick sieht es mal deutlich schwerer aus, und ist auch von der reinen js-File größer.
                Außerdem müsste sich jetzt jemand anderes der den Code dann mal bearbeitet, erst mal damit wiederum beschäftigen.

                Ich bleibe erst mal bei jQuery

                @nikosch:
                Würdest du auch noch einen kleinen weiteren Hinweis geben, wie ich den Ajax Response um schreiben soll, dass er besser ist und ich das Problem nicht habe? Wüsste gerade nichts besseres. Ich mache wie gesgat, noch nicht so lange was mit Ajax.

                Kommentar

                Lädt...
                X