webForumDet fria alternativet

Uföra en åtgärd utan omladdning

PHP

6 svar · 390 visningar · startad av Ryzzen

Medlem sedan mars 2000267 inlägg
Frågan#1

Okej Rubrik kanske verkar lite kryptisk.

Men frågan är enkel..

Jag har en sida där man kan klicka på en bild för att lägga till data i en databas.
Har kommit fram till att ett formulär verkar vara den bästa lösningen för jag vill även senda med några andra variabler..

Och nu till grejen.
Jag vill kunna lägga till den här datan utan att ladda om sidan.

Vet att det går i ASP genom att man kan skriva ett kommando som talar om för webb servern att sidan inte inhåller någon data som skall visas. Alltså den sidan man länkar till från formuläret..
(Man returnerar fel 203 till servern/klienten)

Men har inte lyckats hitta någon som hellst motsvarighet till det i PHP.

Eller finns det någon annan möjlig lösning.

Medlem sedan dec. 19996 721 inlägg
#2

En liten korrigering först:

Det blir webbservern som talar om för webbläsaren att den inte ska vänta sig någon input. Detta görs genom att returnera status-headern "204 No content".
Funktionen har inget direkt med ASP att göra, utan det handlar bara om att kunna manipulera HTTP-headern. I ASP kommer man åt status-headern med response.status.

I PHP blir det:

header("Status: 204 No content");

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

[Redigerat av emission den 30 jun 2000]

Medlem sedan mars 2000267 inlägg
#3

Oki...Mitt fel jag menade ju 204..jajaja

Jag har testat header("Status: 204 No content"); utan effekt.

Varken på min privata server(IIS4) eller på internet server(UNIX) vill det funka..

Någon annan ide..

Medlem sedan dec. 19996 721 inlägg
#4

Visa lite kod, så ska vi nog få det att funka.

Medlem sedan feb. 20001 270 inlägg
#5

Varför inte köra en Header("Location:$QUERY_STRING&varianel1=123&variabel2=456"); ?

------------------
woodi

Svenska FF1
www.johan-skog.nu

Medlem sedan mars 2000267 inlägg
#6

Woodi: Det finns ett krux med din lösning.Sidan kommer ju att laddas om genom att jag går till den

//adddata.php3
include("datahead.inc");
mysql_query("INSERT INTO butik_kundplock(kund_id,produkt_id,antal,tid) values('$KundID','$id','$antal',NULL)");

//$URL = "Location: ";
//$URL .=$sida;
//$URL .="?val=";
//$URL .=$art;
//header($URL);		
header("Status: 204 No content");

//kop.php3
<a href="adddata.php3?id=<? echo $data['id']; ?>&sida=kop.php3&art=<? echo $val; ?>"><img src="img/kundvagn.gif" width=33 height=23 border=0 alt="KÖP"></a>

ett litet utdrag..

Det som händer att när jag trycker på länken i kop.php3 så poppar det upp en tom sida.Ala data lagras som den skall..

Som ni ser så har jag testat med Location: xxx...
Och det funkar jätte fint förutom att sidan laddas om varje gång man trycker på länken..

Har även testat en liknande lösning med ett formulär iställer för en länk...Gav ingen skillnad..

Hjälp jag blir tokig.

Medlem sedan feb. 20001 050 inlägg
#7

Nu har ju inte jag en aning om hur det fungerar i ASP, men i alla fall...

Om du ger en 204 No content, så får sidan inte innehålla någon HTML alls (tycker jag det verkar som), men det gör den i ditt exempel. Å andra sidan, om du bara stoppar in i databasen och ger 204 No content, så poppar det upp ett meddelande "Document contatins no data" osv, och det är ju heller inte så snyggt.

Tror att Location: blir snyggast, även om sidan måste laddas om...

/nicclas @ http://www.nic-sys.se/ *gissar friskt*

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