/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Brug af sessions
Fra : scootergrisen


Dato : 29-01-11 16:14

Jeg har lavet denne side med nogle spørgsmål man skal besvare også
trykke på knappen nederst for at komme til næste side med flere spørgsmål :
http://scootergrisen.dk/test/test0055.html

Det så meningen der skal være måske 30 sider og 2-3 spørgsmål på hver side.

Hvordan indsamler jeg mest smartest de svar brugeren vælger så jeg på
sidste side kan teste om svarene var rigtige ?

Jeg tror umidelbart sessions er det jeg leder efter.

 
 
Martin (29-01-2011)
Kommentar
Fra : Martin


Dato : 29-01-11 19:56

On 29-01-2011 16:14, scootergrisen wrote:
> Jeg har lavet denne side med nogle spørgsmål man skal besvare også
> trykke på knappen nederst for at komme til næste side med flere spørgsmål :
> http://scootergrisen.dk/test/test0055.html
>
> Det så meningen der skal være måske 30 sider og 2-3 spørgsmål på hver side.
>
> Hvordan indsamler jeg mest smartest de svar brugeren vælger så jeg på
> sidste side kan teste om svarene var rigtige ?
>
> Jeg tror umidelbart sessions er det jeg leder efter.

Det ville jeg også bruge...
Evt. koblet med noget database, så man også kan gemme sine svar (så man
kan fortsætte på et senere tidspunkt fx)

Sessionen kunne evt. se således ud

$_SESSION['questions']['question_id'] = <svaret>

scootergrisen (29-01-2011)
Kommentar
Fra : scootergrisen


Dato : 29-01-11 23:00

> Det ville jeg også bruge...
> Evt. koblet med noget database, så man også kan gemme sine svar (så man
> kan fortsætte på et senere tidspunkt fx)
>
> Sessionen kunne evt. se således ud
>
> $_SESSION['questions']['question_id'] =<svaret>

Hvordan kan man på en smart måde få data fra <input> ind i $_SESSION ?

Hvis jeg har :

<form method="post" ... >
<input type="radio" name="sporgsmal_1_1" value="ja">
<input type="radio" name="sporgsmal_1_1" value="nej">
</form>

Så vil jeg gerne have svaret (ja eller nej) ind i $_SESSION.
Så kan jeg skrive :

if(isset($_POST['sporgsmal_1_1'])){

$_SESSION['sporgsmal'][1][1] = $_POST['sporgsmal_1_1'];

}

Men det syns jeg bare ikke virker smart.

Martin Larsen (29-01-2011)
Kommentar
Fra : Martin Larsen


Dato : 29-01-11 23:29

scootergrisen wrote:

> Hvordan kan man på en smart måde få data fra <input> ind i $_SESSION ?

På samme måde som i enhver anden variabel. Betragt sessions som alm.
variabler der beholder deres værdi over flere sider.

Martin

Birger Sørensen (29-01-2011)
Kommentar
Fra : Birger Sørensen


Dato : 29-01-11 23:48

Efter mange tanker skrev scootergrisen:
>> Det ville jeg også bruge...
>> Evt. koblet med noget database, så man også kan gemme sine svar (så man
>> kan fortsætte på et senere tidspunkt fx)
>>
>> Sessionen kunne evt. se således ud
>>
>> $_SESSION['questions']['question_id'] =<svaret>
>
> Hvordan kan man på en smart måde få data fra <input> ind i $_SESSION ?
>
> Hvis jeg har :
>
> <form method="post" ... >
> <input type="radio" name="sporgsmal_1_1" value="ja">
> <input type="radio" name="sporgsmal_1_1" value="nej">
> </form>
>
> Så vil jeg gerne have svaret (ja eller nej) ind i $_SESSION.
> Så kan jeg skrive :
>
> if(isset($_POST['sporgsmal_1_1'])){
>
> $_SESSION['sporgsmal'][1][1] = $_POST['sporgsmal_1_1'];
>
> }
>
> Men det syns jeg bare ikke virker smart.

Hvorfor alle 1-tallerne?
Det er vel formentlig spørgsmål 1 - kan der gives mere end et svar på
srøgsmål 1?
$_SESSION['spørgsmal'][1] = ... må vel kunne gøre det?

Og ellers er det sådan man gør. Hvad er det, der ikke er smart?

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



scootergrisen (30-01-2011)
Kommentar
Fra : scootergrisen


Dato : 30-01-11 00:34

Hvis jeg nu har denne kode :

<input type="radio" name="teori_sporgsmal_7_1" value="ja">
<input type="radio" name="teori_sporgsmal_7_1" value="nej">

Så kan jeg få svaret (ja eller nej) sådan her :

if(isset($_POST['teori_sporgsmal_7_1'])){

$_SESSION['svar'][7][1] = $_POST['teori_sporgsmal_7_1'];

}

Og det er jo så også fint nok hvis der ikke var så mange spørgsmål men
nu er der 32 billeder med 2-5 spørgsmål på hver billed. Så det bliver
lidt over 100 spørgsmål i alt.

Det virker bare så usmart at skulle skrive sådan her 100 gange...

1
if(isset($_POST['teori_sporgsmal_7_1'])){

$_SESSION['svar'][7][1] = $_POST['teori_sporgsmal_7_1'];

}
2
if(isset($_POST['teori_sporgsmal_7_2'])){

$_SESSION['svar'][7][2] = $_POST['teori_sporgsmal_7_2'];

}
3
if(isset($_POST['teori_sporgsmal_8_1'])){

$_SESSION['svar'][8][1] = $_POST['teori_sporgsmal_8_1'];

}
4
if(isset($_POST['teori_sporgsmal_8_2'])){

$_SESSION['svar'][7][2] = $_POST['teori_sporgsmal_7_2'];

}

.....osv.

Kan det ikke gøres smartere ?

Ukendt (30-01-2011)
Kommentar
Fra : Ukendt


Dato : 30-01-11 00:58

Den 30-01-2011 00:33, scootergrisen skrev:
> Hvis jeg nu har denne kode :
>
> <input type="radio" name="teori_sporgsmal_7_1" value="ja">
> <input type="radio" name="teori_sporgsmal_7_1" value="nej">
>
> Så kan jeg få svaret (ja eller nej) sådan her :
>
> if(isset($_POST['teori_sporgsmal_7_1'])){
>
> $_SESSION['svar'][7][1] = $_POST['teori_sporgsmal_7_1'];
>
> }
>
> Og det er jo så også fint nok hvis der ikke var så mange spørgsmål men
> nu er der 32 billeder med 2-5 spørgsmål på hver billed. Så det bliver
> lidt over 100 spørgsmål i alt.
>
> Det virker bare så usmart at skulle skrive sådan her 100 gange...
>
> 1
> if(isset($_POST['teori_sporgsmal_7_1'])){
>
> $_SESSION['svar'][7][1] = $_POST['teori_sporgsmal_7_1'];
>
> }
> 2
> if(isset($_POST['teori_sporgsmal_7_2'])){
>
> $_SESSION['svar'][7][2] = $_POST['teori_sporgsmal_7_2'];
>
> }
> 3
> if(isset($_POST['teori_sporgsmal_8_1'])){
>
> $_SESSION['svar'][8][1] = $_POST['teori_sporgsmal_8_1'];
>
> }
> 4
> if(isset($_POST['teori_sporgsmal_8_2'])){
>
> $_SESSION['svar'][7][2] = $_POST['teori_sporgsmal_7_2'];
>
> }
>
> ....osv.
>
> Kan det ikke gøres smartere ?

Tjooo...
Du kunne fx bare skrive

$_SESSION['questionns']['page1'] = $_POST;

Bare husk at lave validering!!!

Et rigtig godt forslag til dig er at bruge fx. apeform
http://www.phpclasses.org/package/1368-PHP-A-very-abstract-web-form-builder-and-processor.html

Det er så rart at kunne skrive en formular på meget få linjer, inkl
validering

<?php
$form = new Apeform;
$data['name'] = $form->text('Navn');
if (empty($data['name']))
$form->error('Navn skal udfyldes');
$data['email'] = $form->text('Din email');
if (! filter_var($data['email'], FILTER_VALIDATE_EMAIL))
$form->error('Email skal udfyldes');
$data['question'] = $form->radio('Tryk på en knap', array(1 => 'Option
1', 2 => 'Option 2'));
if (empty($data['question']))
$form->error('Du skal trykke på en knap');
$form->submit('Indsend formular');

if ($form->isValid()) {
$_SESSION['questions'] = $data;
}
?>

Templaten kan sættes med
$form->template
Se evt. http://www.phpclasses.org/browse/file/6339.html

Det vil gøre livet SÅ meget nemmere for dig
PS
Den eneste ting der er et problem er flere tekstbokse (fx. postnr og by)
på samme linje, det kan desværre ikke lade sig gøre på nuværende tidspunkt

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste