Max. Varibalenwert javascript/php

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

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

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    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?

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    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.

    Einen Kommentar schreiben:


  • churcher
    antwortet
    @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.

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    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*

    Einen Kommentar schreiben:


  • churcher
    antwortet
    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

    Einen Kommentar schreiben:


  • pekka
    antwortet
    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.

    Einen Kommentar schreiben:


  • Abraxax
    antwortet
    ich verstehe nicht, was du meinst.

    eine schleife sehe ich nicht, und wovon brauchst du den maximalwert?

    Einen Kommentar schreiben:


  • churcher
    hat ein Thema erstellt Max. Varibalenwert javascript/php.

    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
Lädt...
X