Empty check

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

Bekijk vacature »

Software Developer

Dit ga je doen Ontwikkelen aan de software dat beschikbaar is op de substations; Ontwikkelen in C++, C, Python en JavaScript. Daarnaast op een Embedded Linux omgeving, opgebouwd met containers en DevOps; Meewerken aan cyber security (OWASP); Uitvoeren/bouwen van geautomatiseerde testen in samenwerking met de Quality Specialist; Vertalen van wensen van de klanten/business naar werkbare/duurzame oplossingen. Hier ga je werken Als Software Ontwikkelaar kom je te werken bij een organisatie gericht op de (internationale) energiemarkt, waar wordt gewerkt voor het verwerven en verwerken van realtime, high quality data. Er wordt gewerkt vanuit het hart van de substations en direct voor

Bekijk vacature »

.NET developer

Functie Als developer heb jij de keuze om aan te sluiten bij het team (13 developers) die op locatie projectmatig bij klanten werkt. Wanneer jij liever intern bij de werkgever werkt is er ook alle ruimte voor jou in het interne team (8 developers) van dit bedrijf. Je werkt samen aan verschillende projecten bij of voor de klant. Het project wordt aangeleverd door sales aan de project manager. Die maakt samen met de Resourcer een planning en op basis daarvan wordt uit het development team een “projectgroep” opgesteld. Hoeveel en welke projecten jij wilt oppakken gebeurt geheel in samenspraak met

Bekijk vacature »

.NET Developer C#

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er

Bekijk vacature »

Frontend Developer - Leeuwarden

Als Frontend Developer bouw jij mee aan het onderwijs van de toekomst! In een scrum team werken met jonge en enthousiaste collega’s, moderne technieken, ruimte voor eigen ontwikkeling en op een proactieve wijze kunnen meewerken aan innovatie binnen het onderwijs. Magister is het state-of-the-art softwarepakket dat scholen in het voortgezet onderwijs op alle fronten ontzorgt. Van leerlingenadministratie tot het ondersteunen van individuele leerlijnen, van toegang tot digitaal lesmateriaal tot het plannen van het lesrooster. In de Magister app bedient Magister ruim 2,5 miljoen gebruikers waarvan, dagelijks meer dan 600.000 unieke. Hiermee is Magister de absolute marktleider in onderwijsland. Wat vragen

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Software Developer

Dit ga je doen Ontwerpen, ontwikkelen en onderhouden van (mobiele) internettoepassingen; Ontwikkelen en onderhouden van Microservices; Ontwerpen en optimaliseren van databases; Identificeren van nieuwe trends/ontwikkelingen binnen de branche. Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt zich op het leveren van kwalitatief hoogwaardige producten aan alle hun klanten. De organisatie telt circa 4.000 medewerkers in meer dan 10 verschillende landen. Momenteel is de organisatie op zoek naar een Software Developer wilt meewerken aan het

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Core developer wordt jij onderdeel van ons team met drie breed ontwikkelde software engineers en een flexibele schil met zes ervaren freelancers. Jij gaat mee in de visie van onze organisatie om als IoT partner in deze branche specifieke markt “het” platform te blijven innoveren en deze ook steeds slimmer te maken. Wij hopen dan ook zeker dit in de toekomst te kunnen realiseren met bijvoorbeeld Artificial Intelligence. De architectuur van ons platform is opgemaakt uit een deel eigen protocol, een interface laag en een laag welke de protocollen van derde partijen vertaald naar het eigen

Bekijk vacature »

Senior Front-end Developer

Wordt jij de nieuwe Front end specialist / developer? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel binnen als

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »
Thierry  Vredeveld

Thierry Vredeveld

25/10/2010 20:16:26
Quote Anchor link
Hallo iedereen, ik ben net nieuw op het forum en begin net met php, dus hoop dat dit ik dit topic op de goeie plek post.

Ik ben bezig om een factuur systeem te maken, waarin je naam, bedrijfsnaam en adres kunt invullen, en hij deze waardes kopieert naar een pdf bestand.

Dat is mij al gelukt, echter is het ook mogelijk om werkzaamheden,kosten en aantal toe te voegen.

Nu wil ik dat, mijn script alleen de velden kopieer naar de pdf, waar ook daadwerkelijk iets ingevuld is. Zodat ik geen witregels in mijn pdf krijg.

Hoop dat ik het zo goed mogelijk heb omschreven en dat iemand mij even op weg kan helpen, alvast bedankt!

Groeten, Thierry
 
PHP hulp

PHP hulp

07/05/2024 01:21:10
 
Pim -

Pim -

25/10/2010 20:20:59
Quote Anchor link
Kan je de code geven waarmee je de velden in de PDF zet?

Een leeg-check:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
function isEmpty($val)
{

    return $val === '';
}

?>

Niet empty() gebruiken, want 0 is dan ook leeg
 
Thierry  Vredeveld

Thierry Vredeveld

25/10/2010 20:24:11
Quote Anchor link
Dat kan ik wel :), ik heb alleen paar aanpassingen gedaan hoor.
Het script waar hij alles naar pdf kopieert, komt ergens anders vandaan.

Alvast bedankt!


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
<?php
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');
// variables
$bedrijfsnaam = $_POST["bedrijfsnaam"];
$naam = $_POST["naam"];
$adres = $_POST["adres"];
$postcode = $_POST["postcode"];
$plaats = $_POST["plaats"];
$refNummer = $_POST["refNummer"];

//arrays
$product[0] = $_POST["product[0]"];
$product[1] = $_POST["product[1]"];
$product[2] = $_POST["product[2]"];
$product[3] = $_POST["product[3]"];
$product[4] = $_POST["product[4]"];
$product[5] = $_POST["product[5]"];
$product[6] = $_POST["product[6]"];
$product[7] = $_POST["product[7]"];
$product[8] = $_POST["product[8]"];
$product[9] = $_POST["product[9]"];
$product[10] = $_POST["product[10]"];
$product[11] = $_POST["product[11]"];
$product[12] = $_POST["product[12]"];
$product[13] = $_POST["product[13]"];
$product[14] = $_POST["product[14]"];
$product[15] = $_POST["product[15]"];
$product[16] = $_POST["product[16]"];
$product[17] = $_POST["product[17]"];
$product[18] = $_POST["product[18]"];
$product[19] = $_POST["product[19]"];
$product[20] = $_POST["product[20]"];
$product[21] = $_POST["product[21]"];
$product[22] = $_POST["product[22]"];
$product[23] = $_POST["product[23]"];
$product[24] = $_POST["product[24]"];
$product[25] = $_POST["product[25]"];
$product[26] = $_POST["product[26]"];
$product[27] = $_POST["product[27]"];
$product[28] = $_POST["product[28]"];
$product[29] = $_POST["product[29]"];

$aantal[0] = $_POST["aantal[0]"];
$aantal[1] = $_POST["aantal[1]"];
$aantal[2] = $_POST["aantal[2]"];
$aantal[3] = $_POST["aantal[3]"];
$aantal[4] = $_POST["aantal[4]"];
$aantal[5] = $_POST["aantal[5]"];
$aantal[6] = $_POST["aantal[6]"];
$aantal[7] = $_POST["aantal[7]"];
$aantal[8] = $_POST["aantal[8]"];
$aantal[9] = $_POST["aantal[9]"];
$aantal[10] = $_POST["aantal[10]"];
$aantal[11] = $_POST["aantal[11]"];
$aantal[12] = $_POST["aantal[12]"];
$aantal[13] = $_POST["aantal[13]"];
$aantal[14] = $_POST["aantal[14]"];
$aantal[15] = $_POST["aantal[15]"];
$aantal[16] = $_POST["aantal[16]"];
$aantal[17] = $_POST["aantal[17]"];
$aantal[18] = $_POST["aantal[18]"];
$aantal[19] = $_POST["aantal[19]"];
$aantal[20] = $_POST["aantal[20]"];
$aantal[21] = $_POST["aantal[21]"];
$aantal[22] = $_POST["aantal[22]"];
$aantal[23] = $_POST["aantal[23]"];
$aantal[24] = $_POST["aantal[24]"];
$aantal[25] = $_POST["aantal[25]"];
$aantal[26] = $_POST["aantal[26]"];
$aantal[27] = $_POST["aantal[27]"];
$aantal[28] = $_POST["aantal[28]"];
$aantal[29] = $_POST["aantal[29]"];

$prijs[0] = $_POST["prijs[0]"];
$prijs[1] = $_POST["prijs[1]"];
$prijs[2] = $_POST["prijs[2]"];
$prijs[3] = $_POST["prijs[3]"];
$prijs[4] = $_POST["prijs[4]"];
$prijs[5] = $_POST["prijs[5]"];
$prijs[6] = $_POST["prijs[6]"];
$prijs[7] = $_POST["prijs[7]"];
$prijs[8] = $_POST["prijs[8]"];
$prijs[9] = $_POST["prijs[9]"];
$prijs[10] = $_POST["prijs[10]"];
$prijs[11] = $_POST["prijs[11]"];
$prijs[12] = $_POST["prijs[12]"];
$prijs[13] = $_POST["prijs[13]"];
$prijs[14] = $_POST["prijs[14]"];
$prijs[15] = $_POST["prijs[15]"];
$prijs[16] = $_POST["prijs[16]"];
$prijs[17] = $_POST["prijs[17]"];
$prijs[18] = $_POST["prijs[18]"];
$prijs[19] = $_POST["prijs[19]"];
$prijs[20] = $_POST["prijs[20]"];
$prijs[21] = $_POST["prijs[21]"];
$prijs[22] = $_POST["prijs[22]"];
$prijs[23] = $_POST["prijs[23]"];
$prijs[24] = $_POST["prijs[24]"];
$prijs[25] = $_POST["prijs[25]"];
$prijs[26] = $_POST["prijs[26]"];
$prijs[27] = $_POST["prijs[27]"];
$prijs[28] = $_POST["prijs[28]"];
$prijs[29] = $_POST["prijs[29]"];


class MYPDF extends TCPDF {
    public function Header() {
        $this->setJPEGQuality(90);
        $this->Image('logo.png', 120, 10, 75, 0, 'PNG', 'adres van het logo(logo verplicht) zonder www&http');
 
    }

    public function Footer() {
        $this->SetY(-15);
        $this->SetFont(PDF_FONT_NAME_MAIN, 'I', 8);
        $this->Cell(0, 10, '©2010 innovative-webdesign.nl', 0, false, 'C');
    }

    public function CreateTextBox($textval, $x = 0, $y, $width = 0, $height = 10, $fontsize = 10, $fontstyle = '', $align = 'L') {
        $this->SetXY($x+20, $y); // 20 = margin left
        $this->SetFont(PDF_FONT_NAME_MAIN, $fontstyle, $fontsize);
        $this->Cell($width, $height, $textval, 0, false, $align);
    }
}


// create a PDF object
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
 
// set document (meta) information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Henk Schepers');
$pdf->SetTitle('Facturatiescript v0.22 pre pre-beta');
 
// add a page
$pdf->AddPage();
 
// create address box
$pdf->CreateTextBox($bedrijfsnaam, 0, 55, 80, 10, 10, 'B');
$pdf->CreateTextBox($naam, 0, 60, 80, 10, 10);
$pdf->CreateTextBox($adres, 0, 65, 80, 10, 10);
$pdf->CreateTextBox($postcode . $plaats, 0, 70, 80, 10, 10);
 
// invoice title / number
$pdf->CreateTextBox('Factuur #1337', 0, 90, 120, 20, 16);
 
// date, order ref
$pdf->CreateTextBox('Datum: '.date('Y-m-d'), 0, 100, 0, 10, 10, '', 'R');
$pdf->CreateTextBox('ref.: #2674', 0, 105, 0, 10, 10, '', 'R');

// list headers

$pdf->CreateTextBox('Aantal', 0, 120, 20, 10, 10, 'B', 'C');
$pdf->CreateTextBox('Product(en) en\of Services', 20, 120, 90, 10, 10, 'B');
$pdf->CreateTextBox('Prijs', 110, 120, 30, 10, 10, 'B', 'R');
$pdf->CreateTextBox('Bedrag', 140, 120, 30, 10, 10, 'B', 'R');
 
$pdf->Line(20, 129, 195, 129);
 
// some example data
$orders[] = array('quant' => 1, 'descr' => 'Facturatiesysteem', 'price' => 75);
$orders[] = array('quant' => 40, 'descr' => 'Uurloon', 'price' => 10.45);
$orders[] = array('quant' => 3, 'descr' => 'Garantie eventuele fouten\bugs 1jaar', 'price' => 9.95);
 
$currY = 128;
$total = 0;
foreach ($orders as $row) {
    $pdf->CreateTextBox($row['quant'], 0, $currY, 20, 10, 10, '', 'C');
    $pdf->CreateTextBox($row['descr'], 20, $currY, 90, 10, 10, '');
    $pdf->CreateTextBox('€'.$row['price'], 110, $currY, 30, 10, 10, '', 'R');
    $amount = $row['quant']*$row['price'];
    $pdf->CreateTextBox('€'.$amount, 140, $currY, 30, 10, 10, '', 'R');
    $currY = $currY+5;
    $total = $total+$amount;
}

$pdf->Line(20, $currY+4, 195, $currY+4);

// output the total row
$pdf->CreateTextBox('Totaal', 20, $currY+5, 135, 10, 10, 'B', 'R');
$pdf->CreateTextBox('€'.number_format($total, 2, '.', ''), 140, $currY+5, 30, 10, 10, 'B', 'R');
 
// some payment instructions or information
$pdf->setXY(20, $currY+30);
$pdf->SetFont(PDF_FONT_NAME_MAIN, '', 10);
$pdf->MultiCell(175, 10, '<em>Gelieve het bovengenoemde totaalbedrag binnen 10 dagen over te maken op rekening nummer 0000000
(Rabobank) t.n.v. innovative-webdesign, onder vermelding van het factuurnummer</em>. <br />'
, 0, 'L', 0, 1, '', '', true, null, true);
 
//Close and output PDF document
$pdf->Output('wip.pdf', 'F');
[
/code]
 
SilverWolf NL

SilverWolf NL

25/10/2010 21:46:59
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?PHP
$product
[0] = $_POST["product[0]"];
...

$product[29] = $_POST["product[29]"];

$aantal[0] = $_POST["aantal[0]"];
...

$aantal[29] = $_POST["aantal[29]"];

$prijs[0] = $_POST["prijs[0]"];
...

$prijs[29] = $_POST["prijs[29]"];
?>


Werkt dit niet gewoon?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?PHP
$product
=$_POST["product"];
$aantal=$_POST["aantal"];
$prijs=$_POST["prijs"];
?>
 
Thierry  Vredeveld

Thierry Vredeveld

25/10/2010 21:48:24
Quote Anchor link
Maar als ik hem dan $prijs en $product en $aantal dan door laat geven aan de pdf, geeft ie dat ook niet alle lege velden mee?
 
Pim -

Pim -

25/10/2010 22:02:10
Quote Anchor link
Doet hij nu ook hoor.
En als je van de names van de velden 'orders[n][price]', 'orders[n][quant]' en 'orders[n][descr]', met n als 'hoeveelste', heb je meteen de array in elkaar zoals je die later ook gebruikt.

Welk van de drie wil je op leegheid testen?
Stel dat dat aantal/quant is, gebruik dan het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$orders
= array_filter($orders,
     function(
$item) {
        return (ctype_digit($item['quant']) && $item['quant'] !== 0);
    }
);

?>

Deze haalt alle items weg die geen getal zijn of 0
Gewijzigd op 25/10/2010 22:02:49 door Pim -
 
Thierry  Vredeveld

Thierry Vredeveld

26/10/2010 17:39:49
Quote Anchor link
Ik moet ze allemaal op leeg checken :)

ik snap die functie die je gemaakt hebt wel redelijk, alleen snap ik deze zin niet helemaal:
En als je van de names van de velden 'orders[n][price]', 'orders[n][quant]' en 'orders[n][descr]', met n als 'hoeveelste', heb je meteen de array in elkaar zoals je die later ook gebruikt.

sorry :p
Gewijzigd op 26/10/2010 17:40:01 door Thierry Vredeveld
 
Arjan -

Arjan -

26/10/2010 17:45:59
Quote Anchor link
Als je een formulier hebt kan je het volgende doen:

<input type="text" name="product[]" value="" />
<input type="text" name="product[]" value="" />
<input type="text" name="product[]" value="" />
<input type="text" name="product[]" value="" />
<input type="text" name="product[]" value="" />
<input type="text" name="product[]" value="" />

Je ziet bij de naam "product[]" staan. Hiermee geef je aan dat je na je request een array terug wilt krijgen met daarin, in dit geval, 6 keys (van 0 t/m 5) met elk hun eigen waarde.

Dus als je dan dit doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {

echo '<pre>';
print_r($_POST['product']);
echo '</pre>';

}

?>


zal je zien dat je een array geprint krijgt met de ingevoerde waarden.

Omdat in dit geval $_POST['product'] een array is, kan je met een foreach door de array wandelen en controleren of de waarden zijn ingevuld, dus zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
foreach($_POST['product'] AS $key => $value) {

if(trim($value) != '')
echo $key.' is niet ingevuld';

}

?>


(wel even controleren of $_POST['product'] wel echt een array is en of die wel één of meerdere waarden bevatten (want een foreach gaat in de fout als ie niet kan loopen))
Gewijzigd op 26/10/2010 17:50:33 door Arjan -
 
Pim -

Pim -

26/10/2010 17:48:09
Quote Anchor link
Dus als je van het eerste item van het prijs veld de naam 'orders[0][price]' maakt, bij de hoeveelheid 'orders[0][quant]' en bij de beschrijving 'orders[0][descr]'. Voor het tweede item vervang je de 0 voor een 1, voor het derde item de 0 voor een 2 enz.

Als ze alle niet leeg mogen zijn, wordt de filter zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$orders
= array_filter($_POST['orders'],
     function(
$item) {
        return (
        ctype_digit($item['quant']) &&
        $item['quant'] !== '0' &&

        $item['price'] !== '' &&

        $item['descr'] !== ''
    );
    }
);

?>

Array filter heelt dus de items weg, waarbij de functie true geeft. Die functie (een Closure in dit geval) controleert dus of de hoeveelheid een nummer is en niet nul en of de prijs en beschrijving velden niet leeg zijn.
 
Thierry  Vredeveld

Thierry Vredeveld

26/10/2010 17:50:21
Quote Anchor link
Ja zo word het al stuk duidelijker :D

Kan het nu niet toepassen, maar ga het zometeen sowieso proberen, bedankt alvast!
 
Arjan -

Arjan -

26/10/2010 17:53:14
Quote Anchor link
En toch is dit erg omslachtig. Je wilt gewoon rechtstreeks een array terug krijgen uit je request lijkt mij. Je moet nu alle getallen handmatig invoeren.

Je kan toch veel beter zoiets doen:

<input type="text" name="product[]" value="" />
<input type="text" name="price[]" value="" />
<input type="text" name="descr[]" value="" />

<input type="text" name="product[]" value="" />
<input type="text" name="price[]" value="" />
<input type="text" name="descr[]" value="" />

<input type="text" name="product[]" value="" />
<input type="text" name="price[]" value="" />
<input type="text" name="descr[]" value="" />

<input type="text" name="product[]" value="" />
<input type="text" name="price[]" value="" />
<input type="text" name="descr[]" value="" />

Zo krijg je dus bij elkaar horende keys in zowel product, price en descr en zit je niet te kloten met alle getallen handmatig invoeren.

Edit: Eigenlijk dus hetgeen wat SilverWolf NL al aan het begin aangaf. Het gaat er om dat je die onhandige $product[0] = $_POST['product[0]']; kwijt bent, want dat is zeer omslachtig. Daarna kan je heel simpel alles doen met de arrays wat je wilt.
Gewijzigd op 26/10/2010 17:58:59 door Arjan -
 
Pim -

Pim -

26/10/2010 18:21:51
Quote Anchor link
Ja dit is idd wel wat makkelijker, hoewel de velden waarschijnlijk toch dynamisch gemaakt worden.

Dan wordt de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$count
= (isset($_POST['descr']) && is_array($_POST['descr'])) ? count($_POST['descr']) : 0;
$orders = array();
for($i = 0; $i < $count; ++$i) {
    if (ctype_digit($_POST['quant'][$i]) &&
        $_POST['quant'][$i] !== '0' &&
        $_POST['price'][$i] !== '' &&
        $_POST['descr'][$i] !== ''
    )
        $orders[] = array(
            'quant' => $_POST['quant'][$i],
            'price' => $_POST['price'][$i],
            'descr' => $_POST['descr'][$i],
        );
}


print_r($orders);
?>

Fouten worden zo genegeerd. Als ze ze bij wil houden, moet je de if splitsen en een array met de fouten vullen.
Gewijzigd op 26/10/2010 18:23:44 door Pim -
 
Thierry  Vredeveld

Thierry Vredeveld

26/10/2010 21:02:20
Quote Anchor link
Ok dit is nu mijn code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');
// variables
$bedrijfsnaam = $_POST["bedrijfsnaam"];
$naam = $_POST["naam"];
$adres = $_POST["adres"];
$postcode = $_POST["postcode"];
$plaats = $_POST["plaats"];
$refNummer = $_POST["refNummer"];
$descr = $_POST["descr"];
$quant = $_POST["quant"];
$price = $_POST["price"];


class MYPDF extends TCPDF {
    public function Header() {
        $this->setJPEGQuality(90);
        $this->Image('logo.png', 120, 10, 75, 0, 'PNG', 'adres van het logo(logo verplicht) zonder www&http');
 
    }

    public function Footer() {
        $this->SetY(-15);
        $this->SetFont(PDF_FONT_NAME_MAIN, 'I', 8);
        $this->Cell(0, 10, '©2010 innovative-webdesign.nl', 0, false, 'C');
    }

    public function CreateTextBox($textval, $x = 0, $y, $width = 0, $height = 10, $fontsize = 10, $fontstyle = '', $align = 'L') {
        $this->SetXY($x+20, $y); // 20 = margin left
        $this->SetFont(PDF_FONT_NAME_MAIN, $fontstyle, $fontsize);
        $this->Cell($width, $height, $textval, 0, false, $align);
    }
}


// create a PDF object
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
 
// set document (meta) information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Henk Schepers');
$pdf->SetTitle('Facturatiescript v0.22 pre pre-beta');
 
// add a page
$pdf->AddPage();
 
// create address box
$pdf->CreateTextBox($bedrijfsnaam, 0, 55, 80, 10, 10, 'B');
$pdf->CreateTextBox($naam, 0, 60, 80, 10, 10);
$pdf->CreateTextBox($adres, 0, 65, 80, 10, 10);
$pdf->CreateTextBox($postcode . $plaats, 0, 70, 80, 10, 10);
 
// invoice title / number
$pdf->CreateTextBox('Factuur #1337', 0, 90, 120, 20, 16);
 
// date, order ref
$pdf->CreateTextBox('Datum: '.date('Y-m-d'), 0, 100, 0, 10, 10, '', 'R');
$pdf->CreateTextBox('ref.: #2674', 0, 105, 0, 10, 10, '', 'R');

// list headers
$pdf->CreateTextBox('Aantal', 0, 120, 20, 10, 10, 'B', 'C');
$pdf->CreateTextBox('Product(en) en\of Services', 20, 120, 90, 10, 10, 'B');
$pdf->CreateTextBox('Prijs', 110, 120, 30, 10, 10, 'B', 'R');
$pdf->CreateTextBox('Bedrag', 140, 120, 30, 10, 10, 'B', 'R');
 
$pdf->Line(20, 129, 195, 129);
 
// some example data
$count = (isset($_POST['descr']) && is_array($_POST['descr'])) ? count($_POST['descr']) : 0;
$orders = array();
for($i = 0; $i < $count; ++$i)
{

    if (ctype_digit($_POST['quant'][$i]) &&
        $_POST['quant'][$i] !== '0' &&
        $_POST['price'][$i] !== '' &&
        $_POST['descr'][$i] !== ''
    )
        $orders[] = array(
            'quant' => $_POST['quant'][$i],
            'price' => $_POST['price'][$i],
            'descr' => $_POST['descr'][$i],
        );
}


print_r($orders);
 
$currY = 128;
$total = 0;
foreach ($orders as $row) {
    $pdf->CreateTextBox($row['quant'], 0, $currY, 20, 10, 10, '', 'C');
    $pdf->CreateTextBox($row['descr'], 20, $currY, 90, 10, 10, '');
    $pdf->CreateTextBox('€'.$row['price'], 110, $currY, 30, 10, 10, '', 'R');
    $amount = $row['quant']*$row['price'];
    $pdf->CreateTextBox('€'.$amount, 140, $currY, 30, 10, 10, '', 'R');
    $currY = $currY+5;
    $total = $total+$amount;
}

$pdf->Line(20, $currY+4, 195, $currY+4);

// output the total row
$pdf->CreateTextBox('Totaal', 20, $currY+5, 135, 10, 10, 'B', 'R');
$pdf->CreateTextBox('€'.number_format($total, 2, '.', ''), 140, $currY+5, 30, 10, 10, 'B', 'R');
 
// some payment instructions or information
$pdf->setXY(20, $currY+30);
$pdf->SetFont(PDF_FONT_NAME_MAIN, '', 10);
$pdf->MultiCell(175, 10, '<em>Gelieve het bovengenoemde totaalbedrag binnen 10 dagen over te maken op rekening nummer 0000000
(Rabobank) t.n.v. innovative-webdesign, onder vermelding van het factuurnummer</em>. <br />'
, 0, 'L', 0, 1, '', '', true, null, true);
 
//Close and output PDF document
$pdf->Output('wip.pdf', 'F');
[
/code]

Maar ik krijg niks te zien in mijn pdf, heb ik iets fout?
Gewijzigd op 26/10/2010 23:39:12 door Thierry Vredeveld
 

06/11/2010 16:27:44
Quote Anchor link
Heeft iemand hier nog een toevoeging aan? Ik ben samen met Thierry aan dit script bezig, alleen het posten van die producten werkt nog niet..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.