webForumDet fria alternativet

Svårt formulärtrubbel ?

HTML & CSS

14 svar · 246 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Frågan#1

Hej! :)

Jag har detta formulär som fungerar bra.

<FORM METHOD="POST" ACTION="dlpage3.php?filename=<?echo $_GET['filename'];?>&programname=<?echo $_GET['programname'];?>&nam=<?echo $_POST["nam"];?>&company=<? echo $_POST["company"];?>&country=<? echo $_POST["country"];?>&email=<?echo  $_POST["email"];?>&phone=<?echo $_POST["phone"];?>"> 

<INPUT TYPE="text" maxlength="7" size="6"  NAME="serialnr" value=<?echo $serialnr?>> 
<INPUT TYPE="text" maxlength="4" size="6"  NAME="model" value=<?echo $model?>>
<INPUT TYPE="submit" value="Download 1">
</FORM>

Men....nu behöver jag lägga till en knapp till, som heter, "Download 2".

Fär båda knapparna behöver jag värdet från querystringen längst upp, måste denna flyttas ner till action nu i knappkoden?(jag vill väldigt gärna ha kvar querystringen på nästa sida)

På något sätt behöver jag skilja knapparna åt så att jag vet vilken som används(kanske kan lägga til ett värde till i querystringen?).

Tacksam för hjälp.

(en del PHP är med, men det påverkar inte själva formulärfunktionen, så är du inte van med PHP kan du bortse från den koden bara)

Medlem sedan aug. 20002 975 inlägg
#2

Du sätter lämligtvis olika name på knapparna:

<INPUT TYPE="submit" name="submit1" value="Download 1">
<INPUT TYPE="submit" name="submit2" value="Download 2">

Och sen på dlpage3.php

if (isset[$_POST['submit1']) {
  // Det som händer om man klickar på Download 1
}

if (isset[$_POST['submit2']) {
  // Det som händer om man klickar på Download 2
}

Det blev PHP-kod även i svaret. :)

Medlem sedan maj 20023 372 inlägg
#3

Hej!

Tack. :)

Om jag inte vet namnet på knappen som trycks ned(det kan vara 14 olika namn varje gång, som läggs in med en PHP kod), kan namnet på knappen då tas fram på sida tre på något sätt.

Medlem sedan aug. 20002 975 inlägg
#4

Nu är jag tveksam om jag förstår, eller rättare sagt jag förstår inte alls.

Är detta sida 1 eller sida 2?

På vilket sätt är namnet på knapparna okända för dig?

Du kan loopa igenom POST-variablerna eftersom de ligger en array:

foreach($_POST as $key => $val) {
   if ($key != "serialnr" && $key != "model") {
      Gör något med din okända knapp
   }
}
Medlem sedan maj 20023 372 inlägg
#5

Hej! :)

Ursäkta att jag var oklar innan.

Koden som beskrivs i mitt första inlägg är den andra sidan.(dlpage2.php)

Knapparna handlar om att ladda ner ett av sju olika program. (när man kommer till sida två så vet man vilket program det gäller mha "programname" i querystringen)

De två knapparna handlar sedan om vilken version av programmet användaren vill ladda ner(det finns två versioner av varje program).

Förstår inte din kod riktigt, knappen kommer bara ha ett namn(ett filnamn av 14 möjliga går det namnet att få fram enkelt? (eller måste jag loopa igenom alla 14 namnen och kolla om något stämmer?)

Medlem sedan aug. 20002 975 inlägg
#6

Nu förstår jag inte problemet.

Filnamnet/programnamnet skickas ju med querystring, så det val du har att göra är ju version 1 eller 2.

Klickar man på 'submit1' så kommer variabel 'submit1' att skickas, men 'submit2' kommer inte att skickas, och viceversa.

Sen i skriptet kollar du bara av vilken av de två knapparna som trycktes på. Bara namnet på den det trycktes på skickades som variabel till skriptet, så det är bara att kolla vilken variabel som finns.

Medlem sedan maj 20023 372 inlägg
#7

Hej!

Tack för ditt engagemang. :)

Ursäkta en följdfråga, men hur får jag fram om submit1 eller submit2 tryckts på då?

Jag är urkass på formulär och knappar....som du kanske märker.

Medlem sedan aug. 20002 975 inlägg
#8
// Finns variabeln submit1
if (isset[$_POST['submit1']) {
  // Det som händer om man klickar på Download 1
}

// Finns variabeln submit2
if (isset[$_POST['submit2']) {
  // Det som händer om man klickar på Download 2
}
Medlem sedan maj 20023 372 inlägg
#9

*Tack* För all hjälp Matte.

Medlem sedan maj 20023 372 inlägg
#10

Hej! :)

Har testat nu, får inte andra knappen att fungera. :(

Såhär ser slutet av koden ut:

<TABLE>
<TR>
	<TD valign="top"><center>

<INPUT TYPE="submit" name="submit1" style="width: 300px;"  value="Download as alt1"></center>

</FORM></TD><td width="10"></td>
	<TD valign="top"><center>
	
<INPUT TYPE="submit" name="submit2" style="width: 200px;"  value="Download as alt2"></center>

</FORM></TD>
</TR>
</TABLE>
Medlem sedan juli 2002167 inlägg
#11

ta bort den första </form> taggen. antar att båda knapparna ska ligga inom samma form

Medlem sedan maj 20023 372 inlägg
#12

*Tack*

Medlem sedan maj 20023 372 inlägg
#13

Problemet fortsätter :(

if($_GET["programname"]=="program1"){ 
    $sub="QRYOPT"; 
	if (isset($_POST['submit1']))  { 
      $filename="agxfgy.zip"; 
       } 
	if (isset($_POST['submit2']))  {
      $filename="QRYOPT.SAV.zip"; 
    } 
}

Väljer jag knapp1, så funkar det, $filename får värdet agxfgy.zip", väljer man knapp två så fås inte något variabelvärde.

Så jag testade att kasta om dem:

if($_GET["programname"]=="program1"){ 
    $sub="QRYOPT"; 
	if (isset($_POST['submit2']))  { 
      $filename="agxfgy.zip"; 
       } 
	if (isset($_POST['submit1']))  {
         $filename="QRYOPT.SAV.zip"; 
    } 
}

Och då får variabeln värdet "QRYOPT.SAV.zip", dvs knapp ett fungerar hur jag än gör, men får inte in något värde i $filename om man väljer knapp två. ;(

Medlem sedan aug. 20002 975 inlägg
#14

Låter hur skumt som helst.
Det ska fungera. Endast namn och värde från den knapp man trycker på ska skickas.

Vi får göra lite felsökning.
I det skript som tar emot formuläret (sida 3) lägger du följande kod:

echo "<pre>";
print_r($_POST);
echo "</pre>";
exit;

Prova att klicka på vardera knappen, och visa här vad du får ut.

Medlem sedan maj 20023 372 inlägg
#15

Hej! :)

Det fungerar nu, det var en if sats några rader ovanför som ställde till det sista felet,

Tack så hemst mycket för all hjälp Matte!!!

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)