Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: Ajax State Updater (Bundesländer Dropdown)

    cole

    • Neu im Forum
    • Beiträge: 7
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #30 am: 14. März 2014, 19:05:35
    Das ändert überhaupt nichts.

    Ergänzung: ich habe auch kein leeres Feld "Bundesland" bei einem schwedischen User bei der Neuregistrierung. Das wird wunderbar durch das Ajax ausgeblendet. Und trotzdem steht in der Bestellbestätigung Alabama.
    rechtstexte für onlineshop

    hedon02

    • Viel Schreiber
    • Beiträge: 618
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #31 am: 14. März 2014, 19:15:20
    ... . Mein letzter Kommentar bevor ich nicht merke das Du Die einfachen Sachen ausschliesst. Das leere Bundesland Feld wird eben nicht durch ajax ausgeblendet bei diesem Modul, wenn es kein Bundesland gibt, sondern es wird angezeigt anstelle eines "select".

    Ist das bei Dir anders, ...hast Du nicht gelesen.

    Gruss

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #32 am: 14. März 2014, 19:56:29
    Hier der aktuelle Code welcher in die neue Shopversion eingeflossen ist:

    Code: PHP  [Auswählen]
    <?php // Ajax State/District/Bundesland Updater - h-h-h
    $state_pages = array('address_book_process.php','create_account.php','create_guest_account.php','checkout_shipping_address.php','checkout_payment_address.php');
    if (ACCOUNT_STATE == 'true' && in_array(basename($PHP_SELF), $state_pages)) { ?>
    <script type="text/javascript">
    /* <![CDATA[ */
    function load_state() {
      var selection = $("select[name='country']").val();
      $.get('get_states.php', {country: selection}, function(data) {
        if (data != '' && data != undefined) {  
          $("[name='state']").replaceWith('<select name="state"></select>');
          var stateSelect = $("[name='state']");
          $.each(data, function(id, text) {
            $("<option />", {
              "value"   : text,
              "text"    : text
            }).appendTo(stateSelect);
          });
        } else {
          $("[name='state']").replaceWith('<input type="text" name="state"></input>');
        }
      });
    }
    $(function() {
      if ($("[name=state]").length) {
        $("select[name='country']").change(function() { load_state(); });
        if ($('div.errormessage').length == 0 && $("select[type=state] option:selected").length == 0) {
          load_state();
        }
      }
    });
    /*]]>*/
    </script>
    <?php } // Ajax State/District/Bundesland Updater - h-h-h ?>

    Die Reihenfolge von Land und Bundesland muss in folgenden Dateien geändert werden:
    address_book_details.html, checkout_new_address.html, create_account.html und der create_account_guest.html
    [...]

    P.S.:

    Code: Javascript  [Auswählen]
    $(function() {

    durch

    Code: Javascript  [Auswählen]
    $(document).ready(function() {

    ersetzen.

    siehe heute

    Gruss

    Das wird auch nach mehrmaligem Wiederholen nicht richtig.

    Code: Javascript  [Auswählen]
    $(function() {

    und

    Code: Javascript  [Auswählen]
    $(document).ready(function() {

    sind identisch. Erstes ist lediglich eine erlaubte Kurzform.

    Das Problem des cole muß also woanders liegen.
    Da ich die Erweiterung nicht kenne, kann ich dazu nichtzs weiter sagen, sorry cole.

    Gruß,
    noRiddle

    hedon02

    • Viel Schreiber
    • Beiträge: 618
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #33 am: 14. März 2014, 21:57:08
    Ich respektiere Dich sehr noRiddle, aber das entbindet auch Dich nicht davon Threads zu lesen bevor Du postest.

    Grüsse

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #34 am: 14. März 2014, 22:49:47
     :mhhh: Was soll ich übersehen haben ?

    Gruß,
    noRiddle

    cole

    • Neu im Forum
    • Beiträge: 7
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #35 am: 15. März 2014, 11:32:26
    ... . Mein letzter Kommentar bevor ich nicht merke das Du Die einfachen Sachen ausschliesst. Das leere Bundesland Feld wird eben nicht durch ajax ausgeblendet bei diesem Modul, wenn es kein Bundesland gibt, sondern es wird angezeigt anstelle eines "select".

    Ist das bei Dir anders, ...hast Du nicht gelesen.

    Gruss

    Sicherheitshalber nochmal vorweg:
    Es geht um einen Shop ín der Version: modified eCommerce Shopsoftware v1.05 dated: 2010-07-18 SP1d

    Erst einmal bin ich davon ausgegangen, dass der Code der Erweiterung in allen Templates schlüssig funktioniert. Bei mir ist das nicht so. Siehe meine Posts oben.

    Jetzt kann ich natürlich den aktualisierten Code, welcher in die neue Shopversion eingeflossen ist, hernehmen, sodaß das "Bundesland"-Feld immer eingeblendet wird, weil, wie Du anmerktest, auch bei einer Ajax-like-Ausblendung der "Bundesland"-Feldes ein Wert über ein hidden-field übergeben wird. ´
    Mit dem aktualisierten Code ist das Bundesland-Feld mal als Pulldown, mal als leeres Feld angezeigt. Es bleibt aber immer ein Pflichtfeld. Macht bei Ländern, die das nicht brauchen aber keinen Sinn. Gibt auch Länder, in denen man dafür gar keine sinnvolle Eingabe machen kann.

    Selbst, wenn man die Zone-Tabelle von den Ländern bereinigt, bei denen PayPal KEINE Bundesland/State/etc. - Angabe voraussetzt, bleibt es für alle Kunden dieser Länder die nicht mehr in der Zone-Tabelle einen Eintrag haben, ein Plfichtfeld.
    Wenn man im Backend-Admin für das Bundeslandfeld einen Minimum-Wert von 0 Zeichen eintrage, bleibt es immer noch ein Pflichtfeld, wobei ich bei dieser Einstellung eigentlich erwarten würde, dass das Feld keine Pflichtfeld mehr ist.

    Alles weitere mit aktualisiertem Code für die neue Shop-Version:

    Also angenommen ein schwedischer Kunde registriert sich, dann bekommt er ein "Bundesland"-Feld angezeigt. Weiter als Pflichtfeld. Minimum-Eingabe 0 Zeichen.
    Bei der Registrierung wirkt sich dann wohl die Backend-Einstellung (Minimum: 0 Zeichen) für dieses Feld aus. Weil, obwohl immer noch als Pflichfeld angezeigt, wird die Registrierung eines Kunden akzeptiert, auch wenn er das Feld frei läßt, was bei einem Pflichtfeld natürlich nicht stimmig ist.

    Immerhin kann sich der Kunde registrieren. Will er aber später (n. bereits erfolgter Registrierung) sein Adressbuch bearbeiten,  wird die Fehlermeldung angezeigt, dass das "Bundesland" aus mindestens 0 Zeichen bestehen muss, sodaß man das Feld nicht frei lassen kann.

    =========================

    Nochmal was hier benötigt wird:

    Bundesland-Abfrage Feld/Pulldown nur für die Länder in der Zone-Tabelle bzw. hier im Speziellen für die Länder bei denen PayPal eine "Bundesland"-Angabe voraussetzt.

    Nur für diese Länder soll das Bundesland-Feld in allen Usertemplates angezeigt werden, als Pulldown bzw. leeres Pflichtfeld. Bei allen anderen Ländern ist dieses Feld nicht notwendig.

    Ich habe die Anleitungen des Thread jetzt mehrfach überprüft, aber die oben genannten Unstimmigkeiten sind präsent. Wenn bei anderen Usern die von mir angesprochenen Dinge, die bei mir -> mit meiner Shopversion <- nicht funktionieren, dann ist das auch schon ein hilfreicher Anhaltspunkt für mich.

    Gerne weiteres Feedback erwünscht in dieser Angelegenheit.

    hedon02

    • Viel Schreiber
    • Beiträge: 618
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #36 am: 15. März 2014, 15:16:34
    ...also entweder ich bin etwas verwirrt oder jeder schreibt hier was ihm so grad in den Kopf kommt, frei nach... alles Schnee von gestern... .

    Ich meine das jetzt gar nicht böse, aber klare Frage => klare Antwort, so geht das gut, die hast Du bekommen.

    Gruss

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #37 am: 15. März 2014, 22:23:45
    :mhhh: Was soll ich übersehen haben ?

    Gruß,
    noRiddle

    Darf ich nochmal nachhaken ?
    Schließlich hast du hier gesagt:

    :-? naja Du hast Dir doch die Antwort schon fast selbst gegeben.

    1. Zeile dieses Codes:

    Code: Javascript  [Auswählen]
    $(function() {
      if ($("[name=state]").length) {
        $("select[name='country']").change(function() { load_state(); });
        if ($('div.errormessage').length == 0 && $("select[type=state] option:selected").length == 0) {
          load_state();
        }
      }
    });

    ersetzen durch 1.Zeile dieses Codes:

    Code: Javascript  [Auswählen]
    $(document).ready(function() {
      if ($("[name=state]").length) {
        $("select[name='country']").change(function() {
          load_state();
        });
        if ($('div.errormessage').length == 0 && $("select[type=state] option:selected").length == 0) {
          load_state();
        }
      }
    });

    @ Cole: das ist bei korrektem Einbau des von h-h-h aktualisierten Codes nicht nachvollziehbar. Die Form würde das auch gar nicht übergeben, da es ja nicht eingetragen ist.

    Grüsse

    Der einzige Unterschied besteht in

    Code: Javascript  [Auswählen]
    $(document).ready(function() {

    anstelle von

    Code: Javascript  [Auswählen]
    $(function() {

    und das ist gleichbedeutend.

    Gruß,
    noRiddle

    hedon02

    • Viel Schreiber
    • Beiträge: 618
    Re: MODUL: Ajax State Updater (Bundesländer Dropdown)
    Antwort #38 am: 16. März 2014, 13:17:33
    Hallo noRiddle,

    natürlich hast du recht, aber das hatte gar nichts mit "Cole" zu tun und Du hast mich mit Deiner "Anmerkung" jenseits der Fehlerkorrektur auf dem falschen Fuss erwischt.  :keks:

    @Cole:

    Auf der 1.Seite ist genau diese Problematik schon beschrieben, weswegen ich auch auf den Code verwiesen habe, der letztlich auch eingeflossen ist in die neue Version (vielleicht  :-D ).

    Die Fehlermeldung bei Adressenänderung ist "clientseitiges JS", das ist 10 Jahre alt, nicht shopweit integriert und keine akzeptable From Validierung nach heutigem Stand. Das solltest Du einfach entfernen.
    Dann spricht auch nichts dagegen das Modul zu verwenden.

    Das grundsätzlich kein Bundesland angezeigt werden sollte wenn keine existieren ist sicher richtig, aber nicht Thema des Moduls. Da muss einiges mehr getan werden um das sauber umzusetzen.

    Grüsse
    rechtstexte für onlineshop
    3 Antworten
    3382 Aufrufe
    18. Februar 2010, 12:44:17 von roschmeier
    3 Antworten
    4818 Aufrufe
    07. Juni 2009, 15:19:01 von Anonym
    9 Antworten
    2110 Aufrufe
    02. April 2019, 14:16:10 von Markus
    3 Antworten
    3310 Aufrufe
    01. Juni 2011, 12:05:16 von DokuMan