Permalänk
Medlem

sökord i html

Hej,

En enkel fråga (hoppas jag...)

Hur får man sökordet att stanna kvar i ett html formulär efter det att Submitknappen har tryckts ned?
Som det är nu försvinner det. Jag vill kunna ändra lite urvalskriterier o dyl via checkboxar etc. och därefter direkt kunna trycka på "submit" utan att behöva fylla i ordet igen.

Tacksam för all hjälp!
//joglee

Permalänk
Inaktiv

Enklast vore väl vara att sätta value="" till det som stod där innan med serverskripting.

Permalänk
99:e percentilen
Skrivet av anon150287:

Enklast vore väl vara att sätta value="" till det som stod där innan med serverskripting.

Yes, alltså något i den här stilen:

if ($_GET['foobar']) { $foo = $_GET['foobar']; } else { $foo = ''; } echo '<input type="text" name="foobar" value="' . $foo . '" />';

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Inaktiv
Skrivet av Zuggmate:

Yes, alltså något i den här stilen:

if ($_GET['foobar']) { $foo = $_GET['foobar']; } else { $foo = ''; } echo '<input type="text" name="foobar" value="' . $foo . '" />';

Yep, exakt. Går även och göra det kortare tex:

<input type="text" name="foobar"<?=(isset($_GET['foobar'])) ? ' value="' . $_GET['foobar'] . '"' : ''?> />

Permalänk
99:e percentilen
Skrivet av anon150287:

Yep, exakt. Går även och göra det kortare tex:

<input type="text" name="foobar"<?=((isset($_GET['foobar'])) ? ' value="' . $_GET['foobar'] . '"' : '')?> />

Jag tänkte det, men dels är jag dålig på shorthands och dels ville jag göra det så enkelt och tydligt som möjligt.

Självklart ska man använda isset(). Jag kände att det var något jag hade missat med mitt condition där. Jag får nog gå och lägga mig.

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Tack för era svar! Detta är faktiskt min första tråd i detta forum. Känns tryggt att vet att det finns hjälp att få.

Tyvärr var jag kanske lite otydlig i min fråga. Ska försöka förtydliga.

En sökruta med tillhörande submitknapp, gjord i html, använder ($POST) för att skicka frågor till en databas via php.

Min fråga gäller hur jag får sökordet att stanna kvar i sökrutan? Detta måste väl ha fungerat innan php fanns, eller?

Permalänk

Byt ut $_GET i havsmonstrets kod mot $_POST ?

Permalänk
Medlem
Skrivet av mel0dy:

Byt ut $_GET i havsmonstrets kod mot $_POST ?

$_REQUEST[] fungerar också

Permalänk
Inaktiv

PHP har funnits väldigt länge, sen 1995 (och likaså motsvarigheterna). Internet har ju inte funnits mycket längre än så.
Som mel0dy säger får du använda $_POST om det skickades via ett formulär, jag som inte tänkte klart.

Permalänk
Medlem

Hmm.. jag får det inte att funka
så här ser min kod ut:

<input ="text" type="text" tabindex="1" size="47"name="keywords" />
<input type="submit" value="Sök" />

Hur jag än gör så får jag upp koden i sökrutan???

Permalänk
99:e percentilen
Skrivet av anon150287:

Som mel0dy säger får du använda $_POST om det skickades via ett formulär, jag som inte tänkte klart.

Du tänkte glasklart. Formulär måste inte använda POST, utan det är upp till utvecklaren att välja metod. Sökfraser brukar och bör skickas med GET, så att man kan kopiera länken till sökresultaten. Om det handlar om en "vanlig" sökning, utan några konfidentiella data, rekommenderar jag starkt GET. (Detta står i motsats till bland annat inloggningsformulär, som innehåller lösenord och därför ska skickas med POST.)

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
99:e percentilen
Skrivet av joglee:

Hmm.. jag får det inte att funka
så här ser min kod ut:

<input type="text" tabindex="1" size="47"name="keywords" />
<input type="submit" value="Sök" />

Hur jag än gör så får jag upp koden i sökrutan???

Du måste ha input-elementen i ett formulär (form).

<form action="search.php" method="get"> <input type="text" tabindex="1" size="47" name="keywords" /> <input type="submit" value="<?php if (isset($_GET['keywords'])) { echo $_GET['keywords']; } ?>" /> </form>

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

En annan grejj som kan vara bra att tänka på när du kodar är att inte använda "<?=" istället för "<?php echo". Träligt att sitta och ändra alla sådana om du inte har tillgång att ändra phpinställningarna på webservern!

Permalänk
Medlem

-YES!!!!
Efter lite meckande fick jag det äntligen att funka:

<input ="text" type="text" tabindex="1" size="47"name="keywords" value="<?php if (isset($_GET['keywords'])) { echo $_GET['keywords']; } ?>" />
<input type="submit" value="Sök" />
<form/>

Jag tackar allra ödmjukast för all hjälp,

Glad Påsk!
//joglee

Permalänk
Skrivet av joglee:

-YES!!!!
Efter lite meckande fick jag det äntligen att funka:

<form>
<input ="text" type="text" tabindex="1" size="47" name="keywords" value="<?php if (isset($_GET['keywords'])) { echo $_GET['keywords']; } ?>" />
<input type="submit" value="Sök" />
<form/>

Jag tackar allra ödmjukast för all hjälp,

Glad Påsk!
//joglee

Japp, dock så är faktiskt inte isset() nödvändigt i det här fallet, även om det är en god vana. Jag skulle gjort så här:

<form> <input ="text" type="text" tabindex="1" size="47" name="keywords" value="<?=$_GET['keywords'] ?>" /> <input type="submit" value="Sök" /> </form>

edit: Såg att du avslutat din <form> felaktigt också, fixade det!

Permalänk
99:e percentilen
Skrivet av simowewe:

En annan grejj som kan vara bra att tänka på när du kodar är att inte använda "<?=" istället för "<?php echo". Träligt att sitta och ändra alla sådana om du inte har tillgång att ändra phpinställningarna på webservern!

Skrivet av infinity08:

Japp, dock så är faktiskt inte isset() nödvändigt i det här fallet, även om det är en god vana. Jag skulle gjort så här:

<form> <input ="text" type="text" tabindex="1" size="47" name="keywords" value="<?=$_GET['keywords'] ?>" /> <input type="submit" value="Sök" /> </form>

edit: Såg att du avslutat din <form> felaktigt också, fixade det!

Men det är bäst att skriva så "tydlig" kod som möjligt och undvika shorthands i början, så att man bättre lär sig vad det egentligen är man gör. Dessutom kan webbservern, som simowewe skrev, vara inställd på att inte acceptera "<?" som starttagg. Man bör därför alltid använda "<?php".

Visa signatur

Skrivet med hjälp av Better SweClockers