Avatar billede orpheus Nybegynder
15. oktober 2007 - 23:33 Der er 14 kommentarer og
1 løsning

Send Form med Javascript i while loop

Jeg vil gerne have min Form sendt ved hjælp af et link istedet for med submit knap. Det virker fint udenfor while loopet, men så snart det kommer indenfor loopet virker det ikke mere. Hvis jeg flytter <form...> udenfor virker det også, men giver så det forkerte resultat. Nogen idéer derude?

<?php
echo $KAT_ID = $_REQUEST['KAT_ID'];

require 'mysql.php';
open_database();
$VisKatalog = mysql_query("select * from SHOP_KATALOG where KAT_STATUS = 'Nyhed'");
close_database();
while ($ROW = mysql_fetch_array($VisKatalog)) {
require 'mysqlrows/katalog.php';
print "    <form name='BUY' method='get' action='test.php'>
        <input type='hidden' name='a' value='Køb'>
        <input type='hidden' name='KAT_ID' value='$KAT_ID'>
        <input type='text' name='ORD_ANTAL' value=1 size=3>, <a href=\"java script:document['BUY'].submit()\">Køb</a>
        </form>";
        }
?>
Avatar billede nielle Nybegynder
15. oktober 2007 - 23:41 #1
Dit kald af close_database() skal i hvert fald flyttes ned efter løkken.
Avatar billede nielle Nybegynder
15. oktober 2007 - 23:43 #2
Et bud:

<?php
echo $KAT_ID = $_REQUEST['KAT_ID'];

require 'mysql.php';
require 'mysqlrows/katalog.php';

open_database();
$VisKatalog = mysql_query("select * from SHOP_KATALOG where KAT_STATUS = 'Nyhed'");
while ($row = mysql_fetch_assoc($VisKatalog)) {
    $KAT_ID = $row['KAT_ID'];   
   
    print "    <form name='BUY' method='get' action='test.php'>
        <input type='hidden' name='a' value='Køb'>
        <input type='hidden' name='KAT_ID' value='$KAT_ID'>
        <input type='text' name='ORD_ANTAL' value='1' size='3'>,
        <a href=\"java script:document['BUY'].submit()\">Køb</a>
        </form>";
}
close_database();
?>
Avatar billede orpheus Nybegynder
16. oktober 2007 - 00:00 #3
Nææ, det er vel nu ikke nødvendigt, jeg skal jo kun have adgang til databasen under min query. Har dog alligevel prøvet det, hvilket ikke ændrede noget.
Avatar billede dkfire Nybegynder
16. oktober 2007 - 00:49 #4
Har du styr på hvor mange forms du får ud af det du viser ??
Hvis din query virker så kan det jo ske at der vil komme flere forms ud, hvilke ikke er særlig smart.

Prøv:
<?php
echo $KAT_ID = $_REQUEST['KAT_ID'];

require 'mysql.php';
require 'mysqlrows/katalog.php';

open_database();
$VisKatalog = mysql_query("select KAT_ID from SHOP_KATALOG where KAT_STATUS = 'Nyhed'") or die(mysql_error());
if( mysql_num_rows( $VisKatalog ) > 0 )
{
echo "<form name='BUY' method='get' action='test.php'>
        <input type='hidden' name='a' value='Køb'>";
while ($row = mysql_fetch_assoc($VisKatalog)) {
    $KAT_ID = $row['KAT_ID']; 
 
    print " <input type='hidden' name='KAT_ID' value='$KAT_ID'>";
       
}
echo "<input type='text' name='ORD_ANTAL' value='1' size='3'>,
        <a href=\"java script:document['BUY'].submit()\">Køb</a>
        </form>";
}else
{
echo "Der blev ikke fundet noget";
}
close_database();
?>
Avatar billede orpheus Nybegynder
16. oktober 2007 - 00:58 #5
Jeg fik ikke lige helt fat i hvad du mente, men jeg fik idéen til at prøve <form name='$KAT_ID'...>, og nu virker det :) var det dét du mente?
Avatar billede dkfire Nybegynder
16. oktober 2007 - 01:04 #6
Nej det var det nu ikke lige, hvordan endte din kode med at se ud ??
Avatar billede orpheus Nybegynder
16. oktober 2007 - 01:08 #7
Sådan:

<?php
echo $KAT_ID = $_REQUEST['KAT_ID'];
require 'mysql.php';
open_database();
$VisKatalog = mysql_query("select * from SHOP_KATALOG where KAT_STATUS = 'Nyhed'");
close_database();
while ($ROW = mysql_fetch_array($VisKatalog)) {
require 'mysqlrows/katalog.php';
print "    <form name='$KAT_ID' method='get' action='test.php'>
        <input type='hidden' name='a' value='Køb'>
        <input type='hidden' name='KAT_ID' value='$KAT_ID'>
        $KAT_ID <input type='text' name='ORD_ANTAL' value=1 size=3>, <a href=\"java script:document['$KAT_ID'].submit()\">Køb</a>
        </form>";
        }
?>
Avatar billede orpheus Nybegynder
16. oktober 2007 - 01:11 #8
Selvfølgelig kunne det ikke virke når jeg havde flere forms med samme navn, men med den unikke $KAT_ID som form navn, så kører det...
Avatar billede dkfire Nybegynder
16. oktober 2007 - 01:12 #9
Godt så, så var det jo bare lige et lille javascript fejl :-)
Avatar billede nielle Nybegynder
16. oktober 2007 - 07:49 #10
Har du prøvet mit kodeeksempel? Der var noget mere i det end at close_database();
var flyttet.
Avatar billede nielle Nybegynder
16. oktober 2007 - 07:52 #11
... f.eks. undre det mig at du vil include katalog.php en gang pr. linje i din tabel?
Avatar billede nielle Nybegynder
16. oktober 2007 - 07:53 #12
Husk forresten at lukke spørgsmålet :^)
Avatar billede orpheus Nybegynder
16. oktober 2007 - 08:35 #13
Problemet var navnet på mine forms, at de alle havde samme navn, og så kunne javascriptet selvfølgelig ikke eksekveres. Det katalog.php som requires er alle mine rows ($KAT_ID = $ROW['KAT_ID'];
Avatar billede olebole Juniormester
16. oktober 2007 - 10:41 #14
<ole>

Du kan bare bruge stylede submit-knapper i stedet for links  :)
- noget i stil med:
    <button style="padding:0;border:0;background:#fff" type="submit">Køb</button>

/mvh
</bole>
Avatar billede orpheus Nybegynder
16. oktober 2007 - 11:41 #15
Ja, det må jeg da lige forsøge mig lidt med. Tak for jeres foreslag alle.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester