webForumDet fria alternativet
Logga in / Bli medlem

Funktion

PHP

16 svar · 260 visningar · startad av skyman

Medlem sedan juli 20012 450 inlägg
Frågan#1

Hur gör man om man vill ha en funktion som körs efter ett knapptryck utan att en ny sida genereras? Funktionen finns alltså på samma sida.
<form action=//funktion
<input type="submit"...
Är det möjligt eller bara krångligt? :q

Medlem sedan juli 2000449 inlägg
#2

Omöjligt med PHP. Då måste du jobba med något "client-side" språk.

Medlem sedan juli 20012 450 inlägg
#3

Det var tråkigt att höra... vad ska jag då ta mig till :q
Finns det någon genväg, så man INTE behöver gå till en ny sida? I mitt fall blir det en tredje sida man ska gå till och då "tappar" jag variablerna, och de är så många så jag vill inte ha dem i sessions(typ 200 st)... :l Vad göra? Det blir ju fulkodning med massa session-varabler men man kanske inte kan göra nått åt saken...

Medlem sedan juli 2000449 inlägg
#4

Ursäkta om det inte hjälper dig på traven, men vad har du skrivit som kräver 200(!) variablar?

Medlem sedan jan. 20007 697 inlägg
#5

Bli inte ledsen Arwid, jag förstår att du har många variabler att hålla reda på. Däremot förstår jag inte hur du lyckas få ihop 200 stycken! :o Kanske beror på att du är newbie... :e

Ska du lyckas med något sånt att inte gå till en ny sida så får du köra med t.ex. JavaScript eller VB-script.

Medlem sedan juli 20012 450 inlägg
#6

Det hör väl inte till saken varför det är så många variabler, och Kim, ta tillbaka det där med newbie. Håll förnedringarna till Cafét.
Ge mig nått tips.
Man han en sida som hämtar en massa olika produkter ut en databas, antalet kan variera eftersom man ävan kan lägga till produkter i den. Man kryssar i och skriver i och donar och har sig. På nästa sida får man se vad man kryssat och skrivit, alltså en verifikation. Sen så ska det läggas in i databasen. Hur göra utan sessions. Man kan ju göra en koll i session-headern som kollar vilka som är i kryssade och ifyllda men enligt vem-det-nu-var här på wF så vad det icke ok att använda loppar i session-headern...

[r]Och Kim, jag heter inte Arwid, skyman är mitt namn...

Medlem sedan juli 2000449 inlägg
#7

Tyvärr så har jag ingen direkt lösning på ditt problem. Återkommer om jag får nån idé.

Medlem sedan juli 20012 450 inlägg
#8

Ok.
Kan man göra en paus i sidan? OCh när man trycker på en knapp så fortsätter sidan genereras och längt ner så läggs datan in i databasen kanske? :q

Medlem sedan juli 20012 450 inlägg
#9

Kim:
Ska du lyckas med något sånt att inte gå till en ny sida så får du köra med t.ex. JavaScript eller VB-script.
Men man kan väl inte köra php i nån av dessa?

Medlem sedan mars 2001190 inlägg
#10

Skyman,

Om du inte vill använda sessions skulle jag testa att göra så här (inte säkert att det fungerar).

Sida ett: Alla formulären. Innehållet skickas via POST till sida två.

Sida två: innehåller verifikation av informationen på sidan innan. all information från sidan innan lägger du i en array som du sedan använder serialize() på. den serialiserade variabeln lägger du i en <input type=hidden>. sidan skickas via post till sida tre.

Sida tre: Här använder du bara unserialize, "packar" upp arrayen och limmar in i databasen.

Jag har säkert missförstått helt så ovanstående är helt ointressant =) Jag skulle dock rekommendera dig att titta på sessions en gång till, då skulle ditt problem vara ett minne blott :)

//Patrik

Medlem sedan juni 2001181 inlägg
#11

Jag tycker att en array som session variabel låter som lösningen på ditt problem.
Då skapar du bara 1 st sessionvariabel och lagra all info du behöver i den.

/r
var tvungen att ändra lite.
Skriver så oförståligt, så jag inte fattar det själv ;)

Medlem sedan juli 20012 450 inlägg
#12

Jag ser att jag har gjort mer än jag själv visste.
Jag har en array som heter remember som jag kör :

reset($remember_ROY);
while(list($key, $val) = each($remember_ROY)){
// bla bla...
echo $val;}

Jag försöker nu skicka den vidare till nästa sida och det verkar funka... Helt otroligt vad man kan krångla till det ibland för sig själv. Tack för påminnelsen så jag kom på att jag hade den ;)

Medlem sedan juli 20012 450 inlägg
#13

Trodde jag ja...
remember innhåller ju bara vilken position som jag ville ha med mig, inte själva värdet. x(

Om man har en array : $array.
Sen så har jag två värden som jag vill lägga in i den. Så den ser ut sådär tex:
0,5,1
1,7,3
2,8,1
3,10,1
4,12,3
5,20,2
osv
Första kolumnen är index, andra en position och den tredje ett värde.
Hur skriver man in detta?

$pos='15';
$val='100';
$count='0';
for ($i=1;$i<30;$i++){
  $array[$count, ....??????
  $count++;
}

/r sär skrivning

Medlem sedan mars 2001190 inlägg
#14

Bygg databasen så varje produkt har ett unikt värde, spara det unika värdet i din array och skicka runt de värdena mellan sidorna. Då behöver du bara ta fram värdena på sista sidan och jämföra dem med databasen. Istället för att skicka en array med kommasepararade värden vilket är onödigt omständigt.

Medlem sedan juli 20012 450 inlägg
#15

Det komplicerar det ytterligare är att det ska finnas med 'antal' också... då MÅSTE jag ju ha tre kolumner... fast jag ska försöka mig på en variant där jag använder mig av $key som produktID.... :)

Medlem sedan juni 2001181 inlägg
#16

Om du vill ha med antal också skulle jag gjort en flerdimensionell array (sök på array i php manualen) eller så gör du bara två arrayer. En med idnr och en med antal. Bara viktigt att de får samma nycklar ($key). Men det borde inte vara några problem.

Medlem sedan juli 20012 450 inlägg
#17

Det tror jag säker fungerar, tack. :)
Men jag har nu gjort som jag skrev ovan.
Enklast så...

282 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)