Max. Varibalenwert javascript/php

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

  • Max. Varibalenwert javascript/php

    durch einen mausklick kann man hierbei immer eine zeile
    hinzufügen dies klappt auch das ganze wird dann mittels
    einer schleife in die db eingetragen klappt auch nur bekomme ich
    es nicht hin wie oft man die schleife durch laufen soll habe jetzt einen
    festen wert genommen aber da dies ja schwachsin ist würde ich
    es gerne mit dem wirklich wert durchlaufen.

    Bräuchte also +nfiles+ maximalwert-

    wäre echt prima wenn mir da wer weiterhelfen kann. Danke

    PHP-Code:
    <script>
    var 
    nfiles=1;
    function 
    Expand(){
    nfiles++
    var 
    adh '<BR><td width="60"><input style="text-align : right" type="text" name="menge['+nfiles+']" value="" size="7" 
    border="0"></td> <td width="60"><input style="text-align : right" type="text" name="vk_preis['
    +nfiles+']" value="" size="7" border="0"></td> <td width="60"><input style="text-align : right" 
    type="text" name="ek_preis['
    +nfiles+']" value="" size="7" border="0"></td> <td width="60"><input style="text-align : right" 
    type="text" name="var_kosten['
    +nfiles+']" value="" size="7" border="0"></td>';
    files.insertAdjacentHTML('BeforeEnd',adh);
    return 
    false;
    }
    </
    script

  • #2
    ich verstehe nicht, was du meinst.

    eine schleife sehe ich nicht, und wovon brauchst du den maximalwert?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ein bisschen mehr erklären könntest Du schon Aber wenn ich dich richtig verstanden habe, brauchst Du keine for-schleife, sondern ein while. Beim ersten Objekt, das null zurückgibt, brichst Du ab.

      Kommentar


      • #4
        die for schleife habe ich in der 2ten seite damit werden die werte der input felder in die db eingetragen das klappt auch ich weiss nur nicht wie ich
        ['+nfiles+'] maximalwert ermittle. als erklärung hier der code vielleicht kennt ihr euch dann aus was ich meine.


        Seite 1
        PHP-Code:

            
        <script>
        var nfiles=1;
        function Expand(){
        nfiles++
        var adh = '<BR><td width="60"><input style="text-align : right" type="text" name="menge['+nfiles+']" value="" size="7" border="0"></td> <td width="60"><input style="text-align : right" type="text" name="vk_preis['+nfiles+']" value="" size="7" border="0"></td> <td width="60"><input style="text-align : right" type="text" name="ek_preis['+nfiles+']" value="" size="7" border="0"></td> <td width="60"><input style="text-align : right" type="text" name="var_kosten['+nfiles+']" value="" size="7" border="0"></td>';
                files.insertAdjacentHTML('BeforeEnd',adh);
                return false;
            }
            </script>
                <form action="preiskat_neu_save.php" method="post">
                    <input type="hidden" name="art_id" value="<?echo $art_id; ?>" border="0"><input type="hidden" name="preis_kat" value="<?echo $preis_kat; ?>" border="0">
                    <tr>
                        <td>
                            <table class="t_text" border="0" cellspacing="0" cellpadding="0">
                                <tr bgcolor="#bbbbbb">
                                    <td width="60">
                                        <div align="center">
                                            <b>Menge</b></div>
                                    </td>
                                    <td width="60">
                                        <div align="center">
                                            <b>VK</b></div>
                                    </td>
                                    <td width="60">
                                        <div align="center">
                                            <b>EK</b></div>
                                    </td>
                                    <td width="56">
                                        <div align="center">
                                            <b>VarK.</b></div>
                                    </td>
                                </tr>
                            </table>
                        <div id="files">
                        </td>
                        <td width="60"><input style="text-align : right" type="text" name="menge[1]" value="" size="7" border="0"></td>
                        <td width="60"><input style="text-align : right" type="text" name="vk_preis[1]" value="" size="7" border="0"></td>
                        <td width="60"><input style="text-align : right" type="text" name="ek_preis[1]" value="" size="7" border="0"></td>
                        <td width="60"><input style="text-align : right" type="text" name="var_kosten[1]" value="" size="7" border="0"></td>
                        </div><input type="submit" name="submit" value="eintragen" border="0"> <input id="button1" onclick="return(Expand())" type="button" name="button1" value="Neue Zeile"><br>
                        </td>
                    </tr>
                </form>
            </body>

        </html>

        Seite 2
        hier habe ich bei $n 50 angegeben und dies sollte der maximalwert von ['+nfiles+'] vom javascript sein

        PHP-Code:
        <? 
        for($n=0; $n<50; $n++)
        {
        $vk_preis_f[$n]=ereg_replace(",",".",$vk_preis[$n]);
        $ek_preis_f[$n]=ereg_replace(",",".",$ek_preis[$n]);
        $var_kosten_f[$n]=ereg_replace(",",".",$var_kosten[$n]);
        }

        if ($submit)
        {
        for($n=0; $n<50; $n++)
        {
          if(!empty($menge[$n]))
          mysql_query("INSERT INTO preis_kat (art_id,preis_kat,staffelpreis,vk_preis,ek_preis,var_kosten) VALUES ('$art_id','$preis_kat','$menge[$n]','$vk_preis_f[$n]','$ek_preis_f[$n]','$var_kosten_f[$n]')");
        }
        ?>
        hoffe ihr versteht jetzt was ich meine

        lg

        Kommentar


        • #5
          wenn ich das richtig sehe, hast du drei arrays, die aufgrund ihres index zueinander gehören.
          das würde ich sowieso schon einmal anders lösen. nämlich ein array mit unterarray.

          als beispiel
          PHP-Code:
          $data = array();
          $data[] = array ('vk' => 0.1'ek' => 0.2'kosten' => 0.5);
          $data[] = array ('vk' => 0.4'ek' => 0.9'kosten' => 0.2);
          $data[] = array ('vk' => 0.5'ek' => 0.3'kosten' => 0.8); 

          nun kannst du mit count() das oberarray checken und deine ausgaben machen.

          PHP-Code:
          for ($i=0;$i<count($data);$i++)
          {
              echo 
          $data[$i]['vk'];
              echo 
          $data[$i]['ek'];
              echo 
          $data[$i]['kosten'];
              echo 
          '<br />':

          wenn man jetzt deine sache nimmt und davon ausgeht, dass alle arrays gleich lang sind, so kannst du anhand EINES arrays das count() machen. das ist aber eher unsauber.

          PHP-Code:
          for($n=0$n<count($vk_preis_f); $n++)
          {
              
          $vk_preis_f[$n]=ereg_replace(",",".",$vk_preis[$n]);
              
          $ek_preis_f[$n]=ereg_replace(",",".",$ek_preis[$n]);
              
          $var_kosten_f[$n]=ereg_replace(",",".",$var_kosten[$n]);

          desweiteren kommt das ganze jetzt zu php, da es sich um ein php- und kein html-problem handelt...

          *VERSCHIEB*
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            @Abraxax danke für den lösungsvorschlag habe es mit count gelöst musste nur +1 immer dazurechnen da er sonst immer den letzten eintrag nicht mit eingetragen hat nun funktioniert es prima danke.

            Kommentar


            • #7
              statt +1 kann man auch kleiner-gleich ( <= ) vor das count() setzen.

              aber eigentlich sollte das array ja bei 0 beginnen. daher verstehe ich das mit dem +1 nicht. normalerweise braucht man das nicht. siehe bsp-code von mit. teste den 1:1 und es geht.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                das +1 liegt daran da der Startwert im javascript mit 1 beginnt und nicht mit 0 siehe quelltext oben.

                Kommentar


                • #9
                  aso. dann musst du aber auch den startwert der for() auf 1 setzen. aber das hast du ja wahrscheinlich gemacht..

                  warum lässt du das eigentlich erst bei 1 beginnen?
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    danke dadurch ich jetzt mit 0 beginne brauch ich auch kein +1 mehr.
                    Danke :-)

                    Kommentar

                    Lädt...
                    X