Autor Zpráva
ed11
Profil
Přeju hezký den,

mám formulář v souboru kalkulace.php rozdělený na 3 sekce (tabulky), který má při odesílání projít php skriptem v gen-czk-pdf.php na vypsání do PDF. Každá tabulka bude mít ale předem neurčený počet řádek a já bych od vás potřeboval poradit, jakým způsobem mám vypsat všechny tyto řádky.

Jedna z těch tří tabulek v kalkulace.php vypadá ve zkrácené podobě takto:
<form action="gen-czk-pdf.php" method="get" id="data" name="data">
<h2>Rozpis materiálu na zakázku</h2>


<table class="items-table material-table" id="materialTable">
<tr>
<td><textarea rows="2" id="materialItemName"></textarea></td>
<td><input type="text" id="materialUnitPrice" /></td>
<td><input type="text" id="materialItemQuantity" /></td>
<td><select id="materialUnitType"><option value="m²">m²</option><option value="m³">m³</option><option value="bm">bm</option><option value="ks">ks</option><option value="kg">kg</option><option value="l">l</option><option value="&nbsp;">&nbsp;</option></select></td>
<td><input type="text" id="materialItemCoeff" /></td>
<td><input type="text" id="materialItemPriceNoVat" /></td>
<td><input type="text" id="materialItemVat" /></td>
<td><input type="text" id="materialItemPriceInVat" /></td>
</tr>
</table>


</form>

Takto si uložím data z jedné tabulky do proměnných v gen-czk-pdf.php a následuje problém s počtem řádek a jejich vypsáním.

            // nazev polozky sekce
$matName = $_GET['materialItemName'];
            // jednotkova cena polozky v sekci
$matPrPer = $_GET['materialUnitPrice'];
            // mnozstvi polozky
$matQuant = $_GET['materialItemQuantity'];
            // typ jednotky polozky v sekci
$matUnit = $_GET['materialUnitType'];
            // koeficient upravy ceny pro polozku v sekci
$matCoeff = $_GET['materialItemCoeff'];
            // celkem za polozku v sekci bez DPH
$matItPrNoVat = $_GET['materialItemPriceNoVat'];
            // celkem DPH za polozku v sekci
$matItVat = $_GET['materialItemVat'];
            // celkem za polozku v sekci vcetne DPH
$matItPrInVat = $_GET['materialItemPriceInVat'];

Samozřejmě pak vyřeším nevyplnění dat, nicméně teď, protože vím, že je zadám a vyplním, bych je potřeboval vypsat pravděpodobně s pomocí nějakého řetězce, já se v tom bohužel zatím vůbec nevyznám...
Kdyžtak pište, budu tady. Moc děkuju za pomoc
----------------------------------------------------------
PS: Je taky dost možné, že jsem na něco zapomněl, nebo špatně uvedl, takže budu rád, když mě upozorníte, jsem samouk začátečník
ed11
Profil
Ptal jsem se ještě na jedné anglické diskuzi, ale ani tam se mně nedostalo odpovědi, jen dalších otázek. Pokud tam vidíte nějakou chybu, nebo nevíte na co se ptám, prosím dejte vědět. Já bych tohle potřeboval mít co nejdřív vyřešené. Mockrát díky
Alphard
Profil
Vy přijmete data v poli a zkopírujete je do samostatných proměnných, ve kterých s nimi nejde hromadně pracovat. Lepší by bylo mít pole $mat, a v něm pak jednotlivé klíče, např. $mat['itVat']. Kdyt to bude v poli, můžete ho snadno projít ve foreach.
ed11
Profil
Děkuju za odpověď, ale nejsem si jistý, jakým způsobem to zapsat
Je toto lepší řešení formuláře?
<table class="items-table material-table" id="materialTable">
<tr>
<td><textarea rows="2" name="item[][materialItemName]"></textarea></td>
<td><input type="text" name="item[][materialUnitPrice]" /></td>
<td><input type="text" name="item[][materialItemQuantity]" /></td>
<td><input type="text" name="item[][materialItemCoeff]" /></td>
<td><input type="text" name="item[][materialItemPriceNoVat]" /></td>
<td><input type="text" name="item[][materialItemVat]" /></td>
<td><input type="text" name="item[][materialItemPriceInVat]" /></td>
</tr>
</table>
ed11
Profil
No, před nějakou dobou už jsem to zprovoznil, funguje to i s POST, jak říkám, začínám, každopádně celý problém jsem nevyřešil.
$matn = $_GET['materialItemName'];
$matup = $_GET['materialUnitPrice'];
$matq = $_GET['materialItemQuantity'];
$matut = $_GET['materialUnitType'];
$matic = $_GET['materialItemCoeff'];
$matipnv = $_GET['materialItemPriceNoVat'];
$mativ = $_GET['materialItemVat'];
$matipiv = $_GET['materialPriceInVat'];

foreach( $matn as $key => $matn ) {
  echo "Nazev ".$matn.
                "Jednotkova cena ".$matup[$key].
        "Mnozstvi ".$matq[$key].
        "Jednotka ".$matut[$key].
        "Koeficient ".$matic[$key].
        "Celkem bez DPH ".$matipnv[$key].
        "DPH sazba ".$mativ[$key].
        "Celkem s DPH ".$matipiv[$key].
                "<br /><br />"; }


Problém je že se to nedá vložit
$material_vypis_dat = 'sem';
$pdf->writeHTML($material_vypis_dat, true, false, true, false, '');

Prosím o radu, pokud ji někdo má, děkuji
Alphard
Profil
Nemusíte tam mít echo, můžete to přiřazovat do proměnné.

$material_vypis_dat = '';

foreach( $matn as $key => $matn ) {
  $material_vypis_dat .= "Nazev ".$matn.
                "Jednotkova cena ".$matup[$key].
        "Mnozstvi ".$matq[$key].
        "Jednotka ".$matut[$key].
        "Koeficient ".$matic[$key].
        "Celkem bez DPH ".$matipnv[$key].
        "DPH sazba ".$mativ[$key].
        "Celkem s DPH ".$matipiv[$key].
                "<br /><br />"; }
ed11
Profil
Alphard:
Právě jste mi zachránil život :) Mockrát děkuju, mohu to nějakým způsobem oplatit?
Alphard
Profil
Já už tady zachraňuji životy 7 let. Buďte dobrým programátorem a veďte ty začínající :-)
ed11
Profil
Alphard S tím zachraňováním to naprosto chápu :) Ještě jednou díky
Toto téma je uzamčeno. Odpověď nelze zaslat.