Just nu i M3-nätverket
Gå till innehåll

Linka med en submit


Hp-Vista

Rekommendera Poster

Hello, håller på att bygga en websida i php/html

 

har dock stött på ett problem med att länka vidare när man klickar på en submit button.

 

här är koden

 

<input type="Submit" value="Login" class="inputsubmit" 

onClick="window.location.href='http://www.computerhope.com'" >

 

detta fungerar dock utmärkt när det står ensamt, dvs, är den ända raden på sidan. Dock fungerar det inte när jag lägger till fielden som ska submitas.

Jag antar att detta beror på att submiten stoppar vidarbefordringen till den nya sidan?

 

Hur som helst, finns det något annat sätt att få det att fungera?

 

Länk till kommentar
Dela på andra webbplatser

Micke_skane

Vad är det du vill göra egentligen, är det en sorts inloggning där man ska fylla i värden som ska skcikas iväg till en annan sida?

I så fall tänker du tokigt, lägg in url:n i formulärets action-tagg och plocka bort onclick-händelsen.

 

Länk till kommentar
Dela på andra webbplatser

det jag vill är att det man skriver i inputen ska sparas till en fil när man klickar på submit, detta har jag lyckats med, men att man samtidigt dirigeras vidare till en ny sida, lite som i ett frågespel.

 

Länk till kommentar
Dela på andra webbplatser

ta bort onclick attributet.

Efter du sparat i php, gör en redirect (med hjälp av php) till din sida.

 

Länk till kommentar
Dela på andra webbplatser

Hur gör jag detta med detta script?

kan inte använda mig av

header('Location: http://www.exempel.se/sida.html');

eftersom jag redan har laddat html.

 

<?php
$name=$_POST['name'];
$file_name = "names.dat";
$fp = fopen($file_name, "a");
fwrite($fp, "$name ");
fclose($fp);
$name=$_POST['text'];
$file_name = "names.dat";
$fp = fopen($file_name, "a");
fwrite($fp, "$name ");
fclose($fp);
?>

 

Länk till kommentar
Dela på andra webbplatser

I den koden du visar har du inte skrivit ut någon HTML.

Lägg annars din phpkod högst upp om du har HTML innan din kod.

 

Länk till kommentar
Dela på andra webbplatser

Det leder ju till att man skickas direkt till sidan...

 

måste ha varit lite otydlig :P Det jag vill är att

 

på Första sidan finns ett inputfield och en submitknapp. när man klickar på submit så sparas inehållet i en textfil på min dator med hjälp av php, allt detta är redan fixat.

 

det jag inte får till är att förutom att spara inehållet när man klickar på submitknappen så skickas man även vidare till nästa sida

 

det borde vara en bättre förklaring´=)

 

Länk till kommentar
Dela på andra webbplatser

Det skall sparas och sedan skall man skickas till den externa sidan?!

 

Jaa?!

Lägg Header('Location osv... efter koden som sparar till textfilen då?!

 

[inlägget ändrat 2008-06-25 20:17:56 av Jonas_Bo]

Länk till kommentar
Dela på andra webbplatser

fungerar inte, har redan anget location i html koden, får ett felmeddelande direkt på sidan

 

Warning: Cannot modify header information - headers already sent by (output started at C:\apache\htdocs\Eng.php:6) in C:\apache\htdocs\Eng.php on line 394

 

här är koden ifall jag har gjort nått fel men jag tror inte det

<?php
$name=$_POST['name'];
$file_name = "names.dat";
$fp = fopen($file_name, "a");
fwrite($fp, "$name ");
fclose($fp);
$name=$_POST['pass'];
$file_name = "names.dat";
$fp = fopen($file_name, "a");
fwrite($fp, "$name ");
header('Location: http://www.exempel.se/sida.html');
fclose($fp);
?>

 

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon

Pröva med att ta bort de första tomraderna. PHP idag följer säkert XML-standarder och XML är larvigt strikt med just de inledande (och förstås avslutande) raderna. Min gissning är att ett första mellanslag eller radbrytning räknats av php-parsern och skickats innan den kommit till din kod.

Backspace:a allt så att filens första par tecken verkligen är "<?php"

 

[inlägget ändrat 2008-06-25 21:40:04 av Anjuna Moon]

Länk till kommentar
Dela på andra webbplatser

aja det är väl inte det som är problemet, men tack ändå! :thumbsup:

Grejen är att om jag skriver phpt längst ner så fungerar inte header('location' eftersom headern redan är laddad i htmlen skriver ´jag den högst upp dirigeras man direkt till sidan.

 

det är mycket möjligt att header inte är rätt teknik. Det jag vill är som sagt att när man trycker på submit knappen så sparas inehållet i input fältet i en fil och man skickas vidare till nästa sida.

 

ideer?

 

Länk till kommentar
Dela på andra webbplatser

hejsan

 

jag har en idé.

 

om du gör två php sidor

med ett sida för ett Formulär

 

 

<form name="exempelformular" action="#" method="post" >

 

man måste inte använda en knapp för submit det går lika bra med en länk

<a href="javascript:document.exempelformular.submit();">submit</a>

</form>

 

 

här lägger du till den andra sida

action="sida2.php"

genom att vi skickar data och använare till sida2

då kan du välja om du vill skickar använare till annan sida. (på sida2 med hjälp av refresh )

eller använaren kvar på sida2

och filen skapas på sida2 hjälp av data också.

 

Skicka vidare - refresh

Med Meta-taggen: Refresh kan besökaren skickas vidare inom ett visst antal sekunder. Om man anger tiden till: 0 kommer inte sidbytet att uppfattas. Antalet sekunder anges i content tätt följt av url som anger den nya sidans adress. Missa inte semikolonet!

 

Så här:

 

<head>

<meta http-equiv="refresh" content="5; url=nysida.html">

</head>

 

 

mvh

 

mac3

 

Länk till kommentar
Dela på andra webbplatser

Perfekt :D:thumbsup:

 

så då lägger jag php skriptet som spara informationen på den nya sidan högst upp och sen dirigerar vidare till nästa sida? Finns det någon tidsgräns eller "hinner" php skriptet spara till filen trots att jag använder 0;?

 

Länk till kommentar
Dela på andra webbplatser

så det ska alltså fungera? submitknappen skickar användaren och datan till phpsida2.php, där fångar php upp datan och sparar den till en fil och htmlet dirigerar vidare till den tredje, slutliga sidan?

 

 

Länk till kommentar
Dela på andra webbplatser

hejsan på er

 

jag ta det igen

 

vi har två st php sidor

 

den första sidan ska innehålla ett Formulär som ska skicka data till sida2 för att skapa en fil nånstans på webbplats eller hur?

 

Formuläret har ett egenskap som heter action="#"

action är = med adressen till aktuella sidan som är sida2 i nuläget.

 

efter vi har klicka på Formuläret submit för skicka vi båda data och använare till sida2 ifrån Formuläret som vi hade på sida1 eller hur?

 

nu finns det en möjlighet att välja om vi ska skicka använare vidare till någon annan sida hjälp av en meta tagg med egenskaper refresh

 

Skicka vidare - refresh

Med Meta-taggen: Refresh kan besökaren skickas vidare inom ett visst antal sekunder. Om man anger tiden till: 0 kommer inte sidbytet att uppfattas. Antalet sekunder anges i content tätt följt av url som anger den nya sidans adress. Missa inte semikolonet!

 

Så här:

 

<head>

<meta http-equiv="refresh" content="5; url=nysida.html">

</head>

 

 

mvh

 

mac3

 

Länk till kommentar
Dela på andra webbplatser

SOrry, allt fungerade utmärk, jag min jubelidiot hade sparat det i unicode... lol :(, tack för hjälpen, ljuvligt :thumbsup::thumbsup::thumbsup::thumbsup::thumbsup::thumbsup:

 

jag skrev om i formen så att action istället för action="" blev action="page2.php"'

 

filerna ligger i samma mapp

 

sen så flyttade jag php skriptet från sida 1 till sida 2

 

<?php
$name=$_POST['name'];
$file_name = "names.dat";
$fp = fopen($file_name, "a");
fwrite($fp, "$name ");
fclose($fp);
$name=$_POST['pass];
$file_name = "names.dat";
$fp = fopen($file_name, "a");
fwrite($fp, "$name ");
fclose($fp);
?>

 

detta borde ju göra så att submit knappen postar användaren och datan till sida 2 och där sparas infot till en fil, names.dat i samma mapp?

men ingenting sparas!

vad är fel

 

 

[inlägget ändrat 2008-06-26 20:14:48 av Hp-Vista]

Länk till kommentar
Dela på andra webbplatser

hejsan igen

 

jag såg några fel i din phpkod

 

kolla om du är med på felet

 

 

 

<?php
$name=$_POST['name']; den är ok 

$file_name = "names.dat"; den är ok
$fp = fopen($file_name, "a");  "a" Skriva till slutet av filen. Finns inte filen skapas den. 


fwrite($fp, "$name "); den är fel , ta bort de " "
fclose($fp); den behöver inte för att du har en till fclose($fp); ner i koden 

$name=$_POST['pass]; den är fel, du har den $name uppe i koden plus det saknar en ' . 
$file_name = "names.dat"; den behöver inte för att den finns  i koden
$fp = fopen($file_name, "a"); den behöver inte för att den finns  i koden
fwrite($fp, "$name ");den behöver inte för att den finns  i koden
fclose($fp);
?>

 

jag rekommenderar du jämför min kod och din kod

<?php
$name=$_POST['name']; namn 
$pass=$_POST['pass']; lösenord 
define("data", "$name $pass"); data 
$file_name = "names.dat"; adressen till mappen\filen.xx 

$fp = fopen($file_name, "a");   Skriva till slutet av filen. Finns inte filen skapas den. 
fwrite($fp, data ); skriv till 
fclose($fp); stäng filen 
?>

 

du kan kolla på http://translate.google.se/translate?hl=sv&sl=en&u=http://www.php.net/fwrite&sa=X&oi=translate&resnum=1&ct=result&prev=/search%3Fq%3Dfwrite%2Bphp%26hl%3Dsv

 

mvh

 

mac3

 

 

Länk till kommentar
Dela på andra webbplatser

Tackar, men det fungerar som sagt, det var jag, min jubelidiot som hade sparat page2 i unicode format... lool :P

 

 

Länk till kommentar
Dela på andra webbplatser

Välförtjänt :D, du har inte lust att titta lite på min post om passords i apache? :D

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...