php hjälp - skapa dynamisk formulär

Permalänk
Medlem

php hjälp - skapa dynamisk formulär

Hejsan har lite problem med php.

Har skapar en while loop som printar ut all från table Products.
Vill att datan ska visas som ett formulär med tick boxes? Vett hur man gör detta statisk men ej Dynamisk.
Hur kan man specifiera (("<form action="insert_pro.php" method="post">") inom php kod?

<?php include 'config.php'; include 'opendb.php'; $query="SELECT * FROM Products"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); $i=0; while ($i < $num) { $pName=mysql_result($result,$i,"pName"); $pPrice=mysql_result($result,$i,"pPrice"); $pStock=mysql_result($result,$i,"pImage"); $pDescription=mysql_result($result,$i,"pDescription"); $categoryID=mysql_result($result,$i,"categoryID"); $pOffer=mysql_result($result,$i,"pOffer"); //echo "<li><b>Product Name: </b>$pName<br>Price: $pPrice</b></li>"; echo ("<form action="insert_pro.php" method="post">"); echo("<br>"); echo("<Input type = 'Checkbox' Name ='$pName' value ="$pnAme" <?PHP print $pName; ?> >$pDescription <br/>") $i++; } <input type="submit" /> echo("</form>"); ?>

Mvh,

Borny

Visa signatur

AMD OPTERON athlon 3800 x2. DFI LANPARTY nforce 4ULTRA D, 2x1 gig twinmos Chassi Themlake 3,3| GC = Powercoler x850 XT Vivo, Logitech G15, Aiwa surround System, NEC DVD Burner, 1 x 1 x 200 gig 1x500 gigmaxtor SATA 1, 1 x180 gig Western Digital 1x320 western

Permalänk

Alltså

echo ("<form action="insert_pro.php" method="post">");

ska väll helt enkelt vara utanför while-satsen?

Jag är inte säker på att jag förstår vad problemet är?

Permalänk

Ser inte ut att vara mycket i den där koden som är rätt tyvärr...

echo("<Input type = 'Checkbox' Name ='$pName' value ="$pnAme" <?PHP print $pName; ?> >$pDescription <br/>")

Bör istället vara så här t.ex.

echo("<Input type = 'Checkbox' Name ='$pName' value ='{$pnAme}'>{$pDescription} <br/>")

Du kan inte använda citationstecken inom ett "echo" då det avslutar det. Du kan isf skriva det såhär \" - alltså...

echo("<Input type = \"Checkbox\" ...

Din kode här "echo ("<form action="insert_pro.php" method="post">");" skriver alltså bara ut: <form action=

Hoppas det inte blev alltför rörigt nu...

Visa signatur

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro

Permalänk
Medlem

<form action="insert_pro.php" method="post"> är utanför whils sattsen.
alla tick boxar kommer nu upp men inga namn.

echo "<input type=\"checkbox\" name=\"$pName\"/>";

får bara tomma checkboxar.

Har testat utam \" men då fungerar det inte.
Parse error: syntax error, unexpected '<' in /homes/06050597/www/products.php on line 48

?

Visa signatur

AMD OPTERON athlon 3800 x2. DFI LANPARTY nforce 4ULTRA D, 2x1 gig twinmos Chassi Themlake 3,3| GC = Powercoler x850 XT Vivo, Logitech G15, Aiwa surround System, NEC DVD Burner, 1 x 1 x 200 gig 1x500 gigmaxtor SATA 1, 1 x180 gig Western Digital 1x320 western

Permalänk

Testa såhär...

echo("<Input type='Checkbox' name='{$pName}' value='{$pnAme}' >$pDescription <br/>")

Är lite ringrostig men tror det där blir rätt...

Visa signatur

Q6600 @ 3.2GHz | 2*4 Corsair XMS2 5-5-5-12 @ 1003 | Club3D HD4850 | Asus P5Q Pro

Permalänk
Medlem

Tack så jätte mycket för den snabba hjälpen.
Detta ger inget error

echo("<Input type='Checkbox' name='{$pName}' value='{$pName}' >$pDescription<br/>");

Men namnen på produkterna visas ej?
Så back on square one.
Varför vista bara tick boxen och inte dom andra attributerna?

Visa signatur

AMD OPTERON athlon 3800 x2. DFI LANPARTY nforce 4ULTRA D, 2x1 gig twinmos Chassi Themlake 3,3| GC = Powercoler x850 XT Vivo, Logitech G15, Aiwa surround System, NEC DVD Burner, 1 x 1 x 200 gig 1x500 gigmaxtor SATA 1, 1 x180 gig Western Digital 1x320 western

Permalänk
Medlem

För att följa valideringen bättre så bör du ha " istället för ' kring värden som tilldelas attribut.

så här:

echo('<Input type="'Checkbox'" name="' . $pName . '" value="' . $pName . '" >' . $pDescription . '<br/>');

Så kör jag i varjefall.

Plus att det blir en prestanda ökning i PHP när den inte behöver leta efter variabler i strängar och utvärdera dessa och sedan skriva ut dess innehåll.

För gör du så här:

echo("Hej på dig $kompis");

Så skrivs det som finns i variablen $kompis ut på den plats det befinner sig i strängen. För php letar upp variabler i echo("") med " som omgärdar strängar.

Om du istället gör så här:

echo('Hej på dig ' . $kompis . '');

Så behöver inte php leta efter strängar i echo('') för du använder ' för att omgärda strängen.

Och du gör så att du skriver ut innehållet i variabeln genom att använda
'Hej på dig ' . $kompis . ''

Jag kör denna variant med '' även vid echo av java script kod men då får man använda \ före en "plut" som tillhör en javascript kod annars så får php krup

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.