[JavaScript] Anfängerfrage?!

Dieses Thema im Forum "Webentwicklung" wurde erstellt von bigD, 5. April 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. April 2010
    Anfängerfrage?!

    Hallo,
    ich lern mich gerade etwas in Javascript ein. Und da hab ich mir eine Funktion geschrieben, die Preise zusammenrechnet. Das Ganze in ganz simpler Form eigentlich. So sieht das aus:
    HTML:
    <form name="fullprice" method="post" action="order">
    <select name="varid[]" id="varid1" onChange="preisfunktion()" class="textbox">
     <option value="10">10</option>
     <option value="25">25</option>
     </select>
    <select name="varid[]" id="varid2" onChange="preifunktion()" class="textbox">
     <option value="1">1</option>
     <option value="3">3</option></select>
    </form>
    <script language="JavaScript" type="text/javascript">
    function preisfunktion(){
     var preis = 0.00;
    if (document.getElementById("varid1").value == 10) {
     var varid1 = 10.00;
    }
    if (document.getElementById("varid1").value == 25) {
     var varid1 = 25.00;
    }
    if (document.getElementById("varid2").value == 1) {
     var varid1 = 1.00;
    }
    if (document.getElementById("varid2").value == 5) {
     var varid2 = 5.00;
    }
    gesamt = preis + varid1 + varid2;
    gesamt = gesamt.toFixed(2);
    gesamt= gesamt.replace(".",",");
    document.fullprice.money.value = "Gesamtpreis: " +gesamt +" EUR" +" ";
    }
    </script>
    
    Das is die Funktion. Und jetzt will ich dass das Ganze ausgegeben wird wenn ich eine der Auswahlboxen ändere. Aber da steh ich auf der Leitung wie ich das machen kann...
    Ich hab aber leider keinen Plan wie das geht. Ich muss zugeben, ganz alleine hab ichs nicht gemacht, mir hat da ein Freund geholfen aber der is seit gestern im Urlaub und jemand anders kann ich leider nicht fragen
     
  2. 5. April 2010
    AW: Anfängerfrage?!

    Code:
    document.fullprice.money.value = "Gesamtpreis: " +gesamt +" EUR" +" ";
    Also was das machen soll keine Ahnung aber okay.



    Du kannst dir aber ein div erstellen.


    HTML:
    <div id="ergebnis"></div>
    Und via Javascript ansteuern


    HTML:
    document.getElementById('ergebnis').innerHTML="Gesamtpreis: " +gesamt +" EUR";
     
  3. 5. April 2010
    AW: Anfängerfrage?!

    Ja, das funktioniert perfekt, aber es kommt immer NaN € raus, also ungültige Zahl, warum?

    EDIT: Da hatte ich wohl einen Buchstaben vergessen.
    Aber eine Frage hab ich noch: Wie kann ich das ergebnis in eine PHP-Variable reinbringen (für nen Warenkorb oder sowas)?
     
  4. 5. April 2010
    AW: Anfängerfrage?!

    Da wäre Ajax in verbindung mit JSON wohl die beste Variante denke ich.

    Schau dir das mal an


    Edit:// Wenns aber nur der Eine Wert ist, kannst du das auch einfach mit einem simplen Ajax-Request übermitteln
     
  5. 5. April 2010
    AW: Anfängerfrage?!

    Mit Ajax kenn ich mich noch weniger aus
    Kann ich dass dann so machen?
    HTML:
    <script.......
    function buy(calcprice) {
    new Ajax.Request("buy.php", {
    method: "post", parameters: 'price='+calcprice, onComplete: afterSending }); 
    }
    </script>
    
    <a href="javascript:buy();"><img src="../img/buy.png" style="margin-left:25px;" border="0" alt="buy" height="45" width="55" /></a>
     
  6. 5. April 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Anfängerfrage?!

    Hinter new Ajax.Request verbirgt sich eine Klasse.


    Murdoc hat hier was ganz nettes gezeigt



    Den ersten Teil speicherst du dir einfach in einer ajax.js oder ähnlichem.


    Aufrufen tust du das ganze dann so:
    HTML:
    <script type="text/javascript" src="ajax.js">
    
    <script type="text/javascript">
    function buy(calcprice) {
    new AjaxRequest("url.php", {
     method: "post",
     parameters: "price=calcprice",
     async: true,
     
     onSuccess: function(ajax) {
     //request war erfolgreich
     },
     
     onFailure: function(ajax) {
     //request war nicht erfolgreich
     }
    });
    }</script>
    
    <a href="javascript:buy('hier muss noch dein calcprice rein');"><img src="../img/buy.png" style="margin-left:25px;" border="0" alt="buy" height="45" width="55" /></a>
    
     
  7. 9. April 2010
    AW: Anfängerfrage?!

    Ich versteh das noch nicht so ganz^^
    Ich schreib in die php file folgendes rein:
    HTML:
    <link href="ajax.js" type="text/javascript" />
    <script type="text/javascript"> 
    function buy(calcprice) { 
    new AjaxRequest("url.php", { 
    method: "post", 
    parameters: "price=calcprice", 
    async: true, 
    onSuccess: function(ajax) { //request war erfolgreich }, 
    onFailure: function(ajax) { //request war nicht erfolgreich } 
    }); 
    }
    </script> 
    <a href="javascript:buy('calcprice');"><img src="../img/buy.png" style="margin-left:25px;" border="0" alt="buy" height="45" width="55" /></a>
    Aber da funktioniert nix wenn ich auf den Link klick...der lädt nicht und macht auch nix auf...warum??

    EDIT: Habs ohne diesem Ajax Request gelöst, nämlich so:

    In die createprice Funktion noch folgendes rein:
    HTML:
    document.getElementById('hidden').value = calcprice;
    und dann ein einfaches Formular mit folgendem Inhalt:
    HTML:
    <form action="test.php" method="get">
    <input name="hidden" id="hidden" type="hidden" value="" />
    <input type="submit" />
    </form>
     
  8. 9. April 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Anfängerfrage?!

    das ist auch klar warum es nicht geht,
    du überbist bei request nix, halt doch (parameters: "price=calcprice")
    und wo ist dann das send()?

    // edit
    hab hier mal ein mootools tutorial,
    hier hab ich mal getest wie arrays versendet werden können.
    normale werte wie string und int usw. sind natürlich auch möglich.
    No File | www.xup.in
     
  9. 9. April 2010
    AW: Anfängerfrage?!

    Deine Zahlen sind imho keine richtigen Zahlen, da sie mit var definiert wurden.

    Es müssten int (Ganzzahlen) bzw. hier eher double (Kommazahlen) sein.
     
  10. 9. April 2010
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Anfängerfrage?!

    send() ? hast du dir meine klasse mal angesehen? ^^

    sei einziger fehler ist, dass er die klasse mit nem <link> einbindet, was natürlich nicht funktioniert.
     
  11. 9. April 2010
    AW: Anfängerfrage?!

    Hmmm...also ich bekomm des mit javascript nicht hin. Aber schaut mal hier nochmal:

    Ich schreib in den Javascriptbereich, genauer mit in die Funktion folgendes rein:
    HTML:
    document.getElementById('hidden').value = calcprice;
    document.getElementById('payment').value = '12';
    document.getElementById('time').value = '12.00';
    Darunter bau ich ein Formular das so aussieht:

    HTML:
    <form action="test.php" method="get"> 
    <input name="hidden" id="hidden" type="hidden" value="" /> 
    <input name="payment" id="payment" type="hidden" value="" /> 
    <input name="time" id="time" type="hidden" value="" /> 
    <input type="submit" /> 
    </form>
    Auf der test.php will ich dann alles schön mit $_POST auslesen aber ich bekomm nur $_POST['hidden']. payment und time werden nicht übertragen....warum?
     
  12. 9. April 2010
    AW: Anfängerfrage?!

    Im Form hast du GET und im PHP Teil fragst du die Sachen mit $_POST ab. Musst dich schon für eins Entscheiden. ^^


    PHP:
    <form action="test.php" method="post"> 
    <input name="hidden" id="hidden" type="hidden" value="" /> 
    <input name="payment" id="payment" type="hidden" value="" /> 
    <input name="time" id="time" type="hidden" value="" /> 
    <input type="submit" name="senden" value='"Abschicken" /> </form>


    <?php

    if(isset( $_POST [ 'senden' ]) &&  $_POST [ 'senden' ]== 'Abschicken' ){

    print_r ( $_POST );
    }
    ?>
    Das sollte klappen.
     
  13. 9. April 2010
    AW: Anfängerfrage?!

    natürlich nicht
    hab mit nur das angesehen
    das seh ich nix von send();
     
  14. 9. April 2010
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Anfängerfrage?!

    weil er diese ajax-klasse von mir verwendet
     
  15. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.