Product etalage naast elkaar
Ik heb een script voor het tonen van de producten in een webwinkel. Enkel is het probleem dat deze allemaal onder elkaar getoond worden, ik ben al een tijd aan het proberen deze naast elkaar te krijgen. Maar dit lukt me maar niet.
Iemand enige suggesties?
Code (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
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
<?php
include "connect2.php";
// producten laten zien
$sql = "SELECT productid, productomschrijving, productnaam, productprijs
FROM product
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__); // als de query niet uitgevoerd wordt geeft die een foutmelding met bestandsnaam en regelnummer
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
echo "<form action=\"add.php\" method=\"post\" align='right'>\n";
echo "<fieldset style='width: 250px;'>";
echo "<input type=\"hidden\" name=\"productid\" value=\"".$product->productid."\" />\n";
echo "<p><strong>".$product->productnaam."</strong><br />\n";
echo "Prijs per stuk: EUR ".$product->productprijs."<br />\n";
echo "Omschrijving: <br />".$product->productomschrijving."<br />\n";
echo "Aantal: <input type=\"text\" name=\"hoeveelheid\" size=\"2\" maxlength=\"2\" value=\"1\" />\n";
echo "<input type=\"image\" src=\"images/cart_add.png\" /></p>\n";
echo "<img src='images/pay.png' height='125' width='125' align='left' />";
echo "</fieldset>";
echo "<br />";
echo "</form>\n";
}
}
?>
include "connect2.php";
// producten laten zien
$sql = "SELECT productid, productomschrijving, productnaam, productprijs
FROM product
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__); // als de query niet uitgevoerd wordt geeft die een foutmelding met bestandsnaam en regelnummer
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
echo "<form action=\"add.php\" method=\"post\" align='right'>\n";
echo "<fieldset style='width: 250px;'>";
echo "<input type=\"hidden\" name=\"productid\" value=\"".$product->productid."\" />\n";
echo "<p><strong>".$product->productnaam."</strong><br />\n";
echo "Prijs per stuk: EUR ".$product->productprijs."<br />\n";
echo "Omschrijving: <br />".$product->productomschrijving."<br />\n";
echo "Aantal: <input type=\"text\" name=\"hoeveelheid\" size=\"2\" maxlength=\"2\" value=\"1\" />\n";
echo "<input type=\"image\" src=\"images/cart_add.png\" /></p>\n";
echo "<img src='images/pay.png' height='125' width='125' align='left' />";
echo "</fieldset>";
echo "<br />";
echo "</form>\n";
}
}
?>
Gewijzigd op 07/01/2011 20:00:14 door Dennis Keldermans
Maak 1 formulier en in de while regel je de opmaak.
Meest simpele, niet door iedereen gewaardeerde, manier is om gebruik te maken van een tabel. Anders zul je moeten kijken naar een opmaak met css.
Gewijzigd op 07/01/2011 20:16:27 door Jens V
display: block;
float: left;
Ik heb er nu een table van gemaakt, maar ik krijg er nog niet 2x naast elkaar.
Code (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
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
<?php
include "connect2.php";
// producten laten zien
$sql = "SELECT productid, productomschrijving, productnaam, productprijs
FROM product
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__); // als de query niet uitgevoerd wordt geeft die een foutmelding met bestandsnaam en regelnummer
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
echo "<form action=\"add.php\" method=\"post\" align='right'>"
. "<table style='width: 450px;'>"
. "<input type=\"hidden\" name=\"productid\" value=\"".$product->productid."\" />"
. "<tr>"
. "<th>" . $product->productnaam . "</th>"
. "</tr>"
. "<tr>"
. "<td>Prijs</td><td>€".$product->productprijs."</td>"
. "</tr>"
. "<tr>"
. "<td>Omschrijving</td><td style='width: 200px;'>".$product->productomschrijving."</td>"
. "</tr>"
. "<tr>"
. "<td>Aantal</td>"
. "<td><input type=\"text\" name=\"hoeveelheid\" size=\"2\" maxlength=\"2\" value=\"1\" /></td>"
. "<td><input type=\"image\" src=\"images/cart_add.png\" /></td>"
. "<td><img src='images/pay.png' align='left' /></td>"
. "</tr>"
. "</table>"
. "<hr \>";
}
}
?>
include "connect2.php";
// producten laten zien
$sql = "SELECT productid, productomschrijving, productnaam, productprijs
FROM product
ORDER BY productnaam"; // dit is dus de query om de producten op te halen
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__); // als de query niet uitgevoerd wordt geeft die een foutmelding met bestandsnaam en regelnummer
$num = mysql_num_rows($query); // Het aantal producten
if(empty($num)) {
echo "<p>Er zijn geen producten gevonden.</p>\n";
} else {
// Laat de producten zien
while($product = mysql_fetch_object($query)) {
echo "<form action=\"add.php\" method=\"post\" align='right'>"
. "<table style='width: 450px;'>"
. "<input type=\"hidden\" name=\"productid\" value=\"".$product->productid."\" />"
. "<tr>"
. "<th>" . $product->productnaam . "</th>"
. "</tr>"
. "<tr>"
. "<td>Prijs</td><td>€".$product->productprijs."</td>"
. "</tr>"
. "<tr>"
. "<td>Omschrijving</td><td style='width: 200px;'>".$product->productomschrijving."</td>"
. "</tr>"
. "<tr>"
. "<td>Aantal</td>"
. "<td><input type=\"text\" name=\"hoeveelheid\" size=\"2\" maxlength=\"2\" value=\"1\" /></td>"
. "<td><input type=\"image\" src=\"images/cart_add.png\" /></td>"
. "<td><img src='images/pay.png' align='left' /></td>"
. "</tr>"
. "</table>"
. "<hr \>";
}
}
?>
het is immers een opsomming, als je deze op display:block zet, een width meegeeft en float:left doet, komen ze op een semantieke en WEB 2.0 manier naast elkaar.
Kloten met tabellen is nergens voor nodig.
Dennis Keldermans op 09/01/2011 01:15:47:
Ik heb er nu een table van gemaakt, maar ik krijg er nog niet 2x naast elkaar.
Kijk eens naar de broncode van de output. Je zult dan zien dat je telkens een nieuwe table aanmaakt ipv 1 table met kolommen en rijen.
Andere opmerking: je escaped momenteel erg veel. Is het niet handiger om je echo te beginnen/eindigen met een ' ipv ". En waarom elke regel beginnen met . " Kun je toch zonder doen? Wordt dan zoiets:
Code (php)
1
2
3
4
2
3
4
. '<table style="width: 450px;">
<input type="hidden" name="productid" value='.$product->productid.' />
<tr>
<th>'. $product->productnaam .'</th>'
<input type="hidden" name="productid" value='.$product->productid.' />
<tr>
<th>'. $product->productnaam .'</th>'
Gewijzigd op 09/01/2011 10:38:54 door Obelix Idefix