Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]uzupelnie imputow dynamiczne
Forum PHP.pl > Forum > Przedszkole
Ciubas
witam,

  1. <script language="JavaScript">
  2. function update(Firma) {
  3.  
  4. var ilosc=parseFloat(Firma.ilosc.value);
  5. var rabat=parseFloat(Firma.rabat.value);
  6. var cena=parseFloat(Firma.cena.value);
  7. var vat=parseFloat(Firma.vat.value);
  8.  
  9. var netto=ilosc*cena*(1-rabat/100);
  10. var brutto= netto*(vat/100);
  11. Firma.netto.value=netto;
  12. Firma.vat_w.value=brutto;
  13. }


  1. <?php
  2. $lp = $i_poz +1;
  3. echo '<tr><td>'.$lp.'</td><td><input name="nazwa" type="textbox" size="20" value="' .mysql_result($towary,$i_t,"nazwa"). '"> </td><td> <input name="ilosc" type="textbox" size="3" value="1" onChange="update(this.form)"> </td><td> <input name="cena" type="textbox" size="10" value="' . mysql_result($towary,$i_t,"cena") .'" onChange="update(this.form)"></td><td><input name="rabat" type="textbox" size="2" value="0" onChange="update(this.form)"></td><td> <input name="netto" type="textbox" size="10" value="' .$netto. '" onChange="update(this.form)"> </td><td> <input name="vat" type="textbox" size="2" value="' . mysql_result($towary,$i_t,"vat" ).'" onChange="update(this.form)"></td><td><input name="vat_w" type="textbox" size="8" value="' . $vat_w .'" onChange="update(this.form)"></td></tr>';
  4. ?>


w skrocie: skrypt dynamicznie wypelnia inputy, tylko teraz mam problem bo chce zeby tych pol bylo wiecej tzn w tablicy ilosc[], rabat[], vat[] i zeby odpowiednia tablica byla uzupelniania skryptem (tzn wszystkie vat[0], vat[1] itd.) zmienna zliczajaca ilosc powtorzej skryptu php to $i_p - nie wiem jak to zautomatyzowac, a na dodatek nie wiem przechwycic pozniej ta tablice w skrypcie aktualizujacaym baze, bardzo prosze o pomoc
erix
Cytat
i zeby odpowiednia tablica byla uzupelniania skryptem (tzn wszystkie vat[0], vat[1] itd.)

A skrypt JS podałeś w jakim celu? Aby walidować wynik? Skoro zmieniasz tylko jedno pole, to wystarczy sprawdzenie jednego pola, a nie całego formularza. winksmiley.jpg

Cytat
nie wiem jak to zautomatyzowac, a na dodatek nie wiem przechwycic pozniej ta tablice w skrypcie aktualizujacaym baze, bardzo prosze o pomoc

http://pl.php.net/manual/en/faq.html.php#faq.html.arrays
Ciubas
witam,

troche sie nie zrozumielismy, poradzilem sobie z pierwsza czescia, zrobilem to tak:

  1. <script language="JavaScript">
  2. function update(Firma) {
  3.  
  4. var brutto_all = 0;
  5. var vat_all = 0;
  6. var netto_all = 0;
  7. var lp = <?php echo $i_p;?>;
  8.  
  9.  
  10. if (lp>0){
  11. for (i=0;i<=lp;i++)
  12. {
  13.  
  14.  
  15. var ilosc=parseFloat(document.forms.Firma['ilosc[]'][i].value);
  16. var rabat=parseFloat(document.forms.Firma['rabat[]'][i].value);
  17. var cena=parseFloat(document.forms.Firma['cena[]'][i].value);
  18. var vat=parseFloat(document.forms.Firma['vat[]'][i].value);
  19.  
  20. var netto=ilosc*cena*(1-rabat/100);
  21. var brutto= netto*(vat/100);
  22. document.forms.Firma['netto[]'][i].value=netto;
  23. document.forms.Firma['vat_w[]'][i].value=brutto;
  24.  
  25. var netto_all = netto_all + netto;
  26. var vat_all = vat_all + brutto;
  27. var brutto_all = brutto_all + brutto + netto;
  28.  
  29.  
  30. }
  31. } else {
  32. var ilosc=parseFloat(document.forms.Firma['ilosc[]'].value);
  33. var rabat=parseFloat(document.forms.Firma['rabat[]'].value);
  34. var cena=parseFloat(document.forms.Firma['cena[]'].value);
  35. var vat=parseFloat(document.forms.Firma['vat[]'].value);
  36.  
  37. var netto=ilosc*cena*(1-rabat/100);
  38. var brutto= netto*(vat/100);
  39. document.forms.Firma['netto[]'].value=netto;
  40. document.forms.Firma['vat_w[]'].value=brutto;
  41.  
  42. var netto_all = netto_all + netto;
  43. var vat_all = vat_all + brutto;
  44. var brutto_all = brutto_all + brutto + netto;
  45.  
  46. }
  47.  
  48. document.forms.Firma['netto_all'].value=netto_all;
  49. document.forms.Firma['vat_all'].value=vat_all;
  50. document.forms.Firma['brutto_all'].value=brutto_all;
  51.  
  52.  
  53. }



  1. <?php
  2. for ($i_poz=0; $i_poz<=$i_p; $i_poz++){
  3. echo '<tr><td>'.$lp.'</td><td><input name="nazwa[]" type="textbox" size="20" value="' .mysql_result($towary,$i_t,"nazwa"). '" disabled> </td><td> <input name="ilosc[]" type="textbox" size="3" value="1" onChange="update(this.form)"> </td><td> <input name="cena[]" type="textbox" size="10" value="' . mysql_result($towary,$i_t,"cena") .'" onChange="update(this.form)" disabled></td><td><input name="rabat[]" type="textbox" size="2" value="0" onChange="update(this.form)"></td><td> <input name="netto[]" type="textbox" size="10" value="' .$netto. '" onChange="update(this.form)" disabled> </td><td> <input name="vat[]" type="textbox" size="2" value="' . mysql_result($towary,$i_t,"vat" ).'" onChange="update(this.form)" disabled></td><td><input name="vat_w[]" type="textbox" size="8" value="' . $vat_w .'"  disabled></td></tr>';
  4. }
  5. ?>


teraz szukam jak odczytam te wszystkie dane z tablic, czego nie ma pod Twoim linkiem...
erix
Owszem, jest:
Cytat
To get your <form> result sent as an array to your PHP script you name the <input>, <select> or <textarea> elements like this:


czyli zmienne $_POST['vat'], $_POST['netto'], to będą zwyczajne tablice.
Ciubas
dooobra juz sobie poradzilem, bardzo dziekuje za pomoc, ma byc:

  1. <?php
  2. $id_towary = $_POST['id_towary']; // nez nawiasu kwadratowego
  3. echo $id_towary[0] ; // i smiga:)
  4. ?>


ja caly czas uzywalem:

  1. <?php
  2. $id_towary = $_POST['id_towary[]'];
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.