Avatar billede fralle Nybegynder
11. september 2004 - 22:12 Der er 8 kommentarer og
1 løsning

_POST forklar venligst

Hej eksperter!
Jeg sidder og roder lidt med $_POST funktionen i forbindelse med en form.

Udsnit af koden;

function FrontPage_Form_Validator(theForm){
  if (theForm.intern.value == "")
  {
    alert("Du må inntaste et internnr.");
    theForm.intern.focus();
    return (false);
  }

  if (theForm.intern.value.length < 8)
  {
    alert("Internnr må minimum ha 8 tegn.");
    theForm.intern.focus();
    return (false);
  }
    if (theForm.intern.value.length > 8)
  {
    alert("Internnr må maks ha 8 tegn.");
    theForm.intern.focus();
    return (false);
  }
  return (true);
}
<?
$descr = $_POST['intern'];
?>
<form method="POST" action="https://www.paynet.no/terminal?totam=<?echo"$totam";?>&descr=<?echo"$descr";?>&utref=<?echo"$utref";?>&payid=<?echo"$payid";?>&mrurl=<?echo"$mrurl";?>&mcurl=<?echo"$mcurl";?>&maurl=<?echo"$maurl";?>&maurl=<?echo"$curry";?>&maurl=<?echo"$langu";?>&mlurl=<?echo"$mlurl";?>" onsubmit="return FrontPage_Form_Validator(this)" language="JavaScript" name="FrontPage_Form">

<tr>
<td align="left" width="78" height="18">
<font face="Verdana" size="1">Internnr</font></td>
<td vAlign="top" align="left" width="390" height="18" colspan="3">
&nbsp;<input type="text" name="intern" size="29"></td>
</tr>


Mit problem er så at når der klikkes videre så kommer min $_POST['intern'] ikke med (&descr=<?echo"$descr";?>), måske har jeg misforstået noget af denne funktion? Havde været fint hvis nogle kunne forklare mig hvad jeg skal gøre for at tage information fra en form og smide ind i et link...
Avatar billede baitianlong Nybegynder
11. september 2004 - 22:19 #1
Du skal bruge $_GET

så kommer variablerne med i URL'en

Du fanger først $_POST her hvis siden reloades.

Altså:

<form method="GET" action="https://www.paynet.no/terminal" onsubmit="return FrontPage_Form_Validator(this)" language="JavaScript" name="FrontPage_Form">
Avatar billede jakoba Nybegynder
11. september 2004 - 22:32 #2
første gang du viser siden med din formular i har $_post['intern'] ikke nogen værdi. det får den først når brugeren har skrevet noget i feltet og submitted.

den adresse du submitter til kunne tyde på at data skal sendes direkte til firmaet 'paynet'. hvis det passer gør du bruge en formular med method='get' så de data der står o formularen bliver automatisk sat på din url:

<form method="GET" action="https://www.paynet.no/terminal?totam=<?echo"$totam";?>&utref=<?echo"$utref";?>&payid=<?echo"$payid";?>&mrurl=<?echo"$mrurl";?>&mcurl=<?echo"$mcurl";?>&maurl=<?echo"$maurl";?>&maurl=<?echo"$curry";?>&maurl=<?echo"$langu";?>&mlurl=<?echo"$mlurl";?>" onsubmit="return FrontPage_Form_Validator(this)" language="JavaScript" name="FrontPage_Form">
<tr>
<td align="left" width="78" height="18">
<font face="Verdana" size="1">Internnr</font></td>
<td vAlign="top" align="left" width="390" height="18" colspan="3">
&nbsp;<input type="text" name="descr" size="29"></td>
</tr>

Jeg har fjernet leddet '&descr=<?echo"$descr";?>' fra action= værdien; det bliver automatisk klistret på idet formularen bliver sendt.

bemærk at feltets navn er ændret til 'descr' så der skal rettes tilsvarende i din javascript funktion FrontPage_Form_Validator der checker om brugeren skrev noget gyldigt.
Avatar billede fralle Nybegynder
11. september 2004 - 22:32 #3
Tja muligvis du har ret men problemet er at den side jeg skal sende det vidre til KUN vil tage imod "POST"... ellers kan den ikke made de informationer som jeg giver den ind i dens system :(
Avatar billede fralle Nybegynder
11. september 2004 - 22:40 #4
Hvis jeg bruger form method="get" så bliver den side som jeg skal made infoen ind ikke glad... men andre ord den får slet ikke nogle af mine vars med.
Som jakoba antyder så er det data som sendes direkte til en betalings server ja...
Avatar billede jakoba Nybegynder
11. september 2004 - 22:43 #5
Hvorfor klistrer du så data på action parameteren. det er get data du sender der. ikke post data.

for at sende det hele med post bruger du hidden felter til standard informationerne:

<form method="GET" action="https://www.paynet.no/terminal" onsubmit="return FrontPage_Form_Validator(this)" language="JavaScript" name="FrontPage_Form">
<tr>
<td align="left" width="78" height="18">
<font face="Verdana" size="1">Internnr</font></td>
<td vAlign="top" align="left" width="390" height="18" colspan="3">
<input type='hidden' name='totam' value='<?echo"$totam";?>'>
<input type='hidden' name='utref' value='<?echo"$utref";?>'>
<input type='hidden' name='payid' value='<?echo"$payid";?>'>
<input type='hidden' name='mrurl' value='<?echo"$mrurl";?>'>
<input type='hidden' name='mcurl' value='<?echo"$mcurl";?>'>
<input type='hidden' name='maurl' value='<?echo"$maurl";?>'><!-- 3 felter med samme navn ? -->
<input type='hidden' name='maurl' value='<?echo"$curry";?>'><!-- 3 felter med samme navn ? -->
<input type='hidden' name='maurl' value='<?echo"$langu";?>'><!-- 3 felter med samme navn ? -->
<input type='hidden' name='mlurl' value='<?echo"$mlurl";?>'>
nbsp;<input type="text" name="descr" size="29"></td>
</tr>

nu bliver det hele sendt som post data.
Avatar billede jakoba Nybegynder
11. september 2004 - 22:45 #6
Ups, og  method='GET'  skal så naturligvis være  method='POST'
Avatar billede fralle Nybegynder
11. september 2004 - 22:46 #7
copy+paste var vist grunden til der var 3x felter med samme navn, retter det lige og prøver din løsning...
Avatar billede fralle Nybegynder
11. september 2004 - 23:03 #8
Nu virkede det, er lige lidt rundt på gulvet over det men det virker... jakob du kan smide et svar hvis du vil :)
Avatar billede jakoba Nybegynder
11. september 2004 - 23:06 #9
ok
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