[PHP] If true voeg waarde toe aan variable

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Ben ik weer >:)
De hele middag loop ik al te kloten om mijn php systeempje aan de gang te krijgen.
Dit systeem bestaat uit een forumulier dat ingevuld wordt om de gegevens vervolgens in een pdf te laten verwerken. Alle gegevens moeten onder elkaar komen te staan. En als er een variable zonder waarde is, dan moet de rest gewoon aanlsuiten in het rijtje en moet er geen regel wit tussen zitten zoals nu het geval is. De pdf maak ik met FPDF
In mijn vorige topic werd mij verteld dat ik array`s moest gebruiken.
Dit ging fout, evenals mijn andere pogingen.

Zo probeerde ik via if statements lege variable uit de string te halen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$items = ("$item1\n$item4\n$item5\n$item6\n$item7\n$item8\n$item9\n$item10");
$true = 1;
$pdf->SetY(65);
$pdf->MultiCell( 140, 10, "$items" , 1, 'B', 0);  
}

if("$quantity2 == 0, $true = 0"){
$true = 1;
$pdf->SetY(65);
$pdf->MultiCell( 140, 10, "$items" , 1, 'B', 0);  
} else {

if("$quantity3 == 0, $true == 0")
$items = ("$item1\$item2\n$item4\n$item5\n$item6\n$item7\n$item8\n$item9\n$item10");
$pdf->SetY(65);
$pdf->MultiCell( 140, 10, "$items" , 1, 'B', 0);  
}


Hier snapte ik geen bal meer van en heb echt wat hulp nodig.
Nu wil ik dat als een if statements true is dat die variable dan wordt toegevoegd aan de hoofdvariabel namelijk $items. Ik heb me rot gezocht en verschillende tutorials gelezen, maar ik kan het nergens vinden.

Ook dit heb ik geprobeerd op aanraden van het vorige topic:
PHP:
1
2
3
4
5
6
7
<?PHP 
for($i=1; $i <= 10; $i++){ 
   if ($_POST['item'.$i] <> ''){ 
      echo $_POST['item'.$i]."\n"; 
   } 
} 
?>


Hier zie je hoe ik het geimplementeerd heb in het script

PHP:
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
<?php
// euro definieren
define('EURO',chr(128));

require('fpdf.php');


//variable uitleggen
$prijs1 = $_POST['prijs1'];
$prijs2 = $_POST['prijs2'];
$prijs3 = $_POST['prijs3'];
$prijs4 = $_POST['prijs4'];
$prijs5 = $_POST['prijs5'];
$prijs6 = $_POST['prijs6'];
$prijs7 = $_POST['prijs7'];
$prijs8 = $_POST['prijs8'];
$prijs9 = $_POST['prijs9'];
$prijs10 = $_POST['prijs10'];
$quantity1 = $_POST['quantity1'];
$quantity2 = $_POST['quantity2'];
$quantity3 = $_POST['quantity3'];
$quantity4 = $_POST['quantity4'];
$quantity5 = $_POST['quantity5'];
$quantity6 = $_POST['quantity6'];
$quantity7 = $_POST['quantity7'];
$quantity8 = $_POST['quantity8'];
$quantity9 = $_POST['quantity9'];
$quantity10 = $_POST['quantity10'];
$item1 = $_POST['item1'];
$item2 = $_POST['item2'];
$item3 = $_POST['item3'];
$item4 = $_POST['item4'];
$item5 = $_POST['item5'];
$item6 = $_POST['item6'];
$item7 = $_POST['item7'];
$item8 = $_POST['item8'];
$item9 = $_POST['item9'];
$item10 = $_POST['item10'];


//tel bedragen op
$uitkomst = $prijs1 * $quantity1 + $prijs2 * $quantity2 + $prijs3 * $quantity3 + $prijs4 * $quantity4 + $prijs5 * $quantity5 + $prijs6 * $quantity6 + $prijs7 * $quantity7 + $prijs8 * $quantity8 + $prijs9 * $quantity9 + $prijs10 * $quantity10;


// Neues PDF-Dokument erstellen 
$pdf = new FPDF('P', 'mm', 'A4'); 

// neue Seite erzeugen 
$pdf->AddPage(); 

// Schriftart definieren 
$pdf->SetFont('helvetica', '', 15 ); 

// Linienfarbe auf Blau einstellen 
$pdf->SetDrawColor(0, 0, 255); 

// Füllung auf Rot einstellen  
$pdf->SetFillColor(255, 0, 0);  

// Textzeile 
$string = 'testzeile testzeile testzeile'; 

//Logo
    $pdf->Image('OEMLOGO.JPG',10,8);
$pdf->Cell(35);
$pdf->Cell(100,45,'Factuur',0,1);



// Text mit Zeilenumbruch, Anführungszeichen beachten 
$string = "Zeile_1\nZeile_2\nTeile_3"; 

/* 
Breite 180mm, Höhe 10mm 
$string = Text schreiben 
0 = ohne Rahmen zeichnen 
R = Text rechtsbündig 
1 = mit Füllung 
*/

$pdf->Cell(130,7, $string ,1);

$pdf->Cell(20,7,xxxcol,1);

// Zeilenumbruch, Höhe 10mm 
$pdf->Ln(10); 


 // Beispiel_3 

// Text mit Zeilenumbruch, Anführungszeichen beachten 
$string = " $item1"; 

/* 
Breite 180mm, Höhe 10mm 
$string = Text schreiben 
0 = ohne Rahmen zeichnen 
R = Text rechtsbündig 
1 = mit Füllung 
*/
$items = ("");
$pdf->SetX(150); 
$pdf->MultiCell( 15, 10, " $uitkomst " , 1, 'B', 0);

for($i=1; $i <= 10; $i++){ 
   if ($_POST['item'.$i] <> '')
$pdf->SetY(65);
$pdf->MultiCell( 140, 10, "$_POST['item'.$i]."\n"" , 1, 'B', 0); 
   
   } 
} 
 



// Zeilenumbruch, Höhe 10mm 
$pdf->Ln(10); 


// Ausgabe zum Browser als test.pdf senden 
$pdf->Output();


?> 

Foutmelding:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\xampp\htdocs\solid\test.php on line 108

Een deel van dit script in van internet de rest is zelf gemaakt.
Maar ik snap alles wat er in dat script staat, het was meer luiheid dat ik dat niet hoefte te scripten.

Help mij aub... ik begin het spoor echt bijster te raken 8)7

20 jaar, en wat had ik bereikt?


  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:58

Onbekend

...

Je hebt zelf eigenlijk al het antwoord gegeven.

Kijk eens op regel 108 van je code en bekijk eens de kleurtjes. Je ziet dat de /n niet in het rood wordt weergegeven.

Speel ook Balls Connect en Repeat


  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Al haal ik die N weg, dan krijg ik nog steeds hetzelfde!

20 jaar, en wat had ik bereikt?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Neem eens een tutorial door (die escaping uitlegt). Daarnaast is het de bedoeling dat, als je code post, alleen relevante code post en geen hele lappen ;)

Dit is toch echt redelijk basic stuff en GoT is geen helpdesk of afhaalbalie waar je kant-en-klare oplossingen kunt afhalen.

[ Voor 38% gewijzigd door RobIII op 10-04-2007 19:48 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Oke bedankt voor de hulp tot zover.
Eerst even eten en daarna zal ik eens gaan zoeken!

Ik zal er de volgende keer op letten Rob, dat ik alleen relevante code post!

20 jaar, en wat had ik bereikt?


  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 16-10 13:42
on a side note: Ik vraag me af waarom je variabelen tussen quotes zet

Maar goed probeer het volgende eens
PHP:
1
2
3
4
5
6
7
8
$items = '';

for($i=0; $i <= 10; $i++)
{ 
    if (!empty($_POST['item'.$i]))
        $items .= $_POST['item' . $i];
   
}

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

1) Begin met het aanpassen van je bron (i.e. je formulier); gebruik ipv select name='item1' (bijvoorbeeld) 'item[1]'; idem voor prijs1 en quantity1
2) doe tijdens het verwerken van je resultaten van je geposte form eens
PHP:
1
2
3
4
5
echo"<pre>";
print_r($_POST['item'];
print_r($_POST['prijs'];
print_r($_POST['quantity'];
echo "</pre>"
en hetzelfde voor prijs en quantity
3) bedenk nu eens hoe je zou kunnen bereiken wat je hebben wil ;)
Zie overigens ook dat het totaal berekenen met bovenstaande aanpak een stuk makkelijker wordt ;)

  • mazz
  • Registratie: November 2004
  • Laatst online: 08-06 13:48
Ik ben bezig rookie, maar ik krijg deze fout met jouw scriptje

Parse error: parse error, unexpected ';' in C:\Program Files\xampp\htdocs\solid\new\x.php on line 3

Hoe kan dat nou weer ;(

20 jaar, en wat had ik bereikt?


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

ga eens haakjes tellen ;)

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

m'n glazen bol is helaas al een tijdje bij de reparateur; wat staat er op/rond die regel ?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Dat zul je toch echt zelf uit moeten zoeken. PHP geeft over het algemeen netjes aan waar het fout zou kunnen zijn. PHP roept nu dat er een ; staat op regel drie die hij niet verwacht. En kom op zeg, kijk eens twee seconden naar die regel en dan zie je direct dat er een ( mist.

Errors zoals deze zijn over het algemeen vrij duidelijk en als je de syntax van PHP een beetje onder de knie hebt is het vrij simple op te lossen. Ook dit is een redelijk basis iets van PHP, iets waarvan we hier verwachten dat je dat zelf onder de knie kan krijgen of dat je in elk geval op z'n minste zelf iets probeert i.p.v. domweg code te kopieren/plakken en vervolgens vragen te gaan stellen als het niet werkt.

[ Voor 24% gewijzigd door Creepy op 10-04-2007 20:31 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.