Toon posts:

[PHP] Random een string kiezen uit invoer*

Pagina: 1
Acties:
  • 89 views sinds 30-01-2008

Verwijderd

Topicstarter
Volgens mij moet het mogenlijk zijn met PHP om een invoer in te kloppen doormiddel van een html form en uit deze invoer één waarde te pikken..

Voorbeeld:


Pagina1:

invoer1: rood
invoer2: blauw
invoer3: geel
invoer4: paars
invoer5: zwart


Pagina2:

\\ er word een invoer gekozen en getoond op het scherm

De computer heeft de volgende invoer gekozen: paars


Heeft iemand suggesties om dit op te lossen ik heb al velen php tutorial sites doorgespit maar heb nog niks kunnen vinden om dit te realiseren.

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Geef je invoer nummers en kies dan een random waarde tussen 1 en 5 door middel van rand(1,5);

http://nl3.php.net/manual/nl/function.rand.php

Systeem | Strava


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Wat lukt niet dan? Het formulier maken? Het formulier verzenden? De waardes uitlezen? Random een waarde kiezen? De gekozen waarde op het scherm zetten?

En wat heb je al geprobeerd?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Ik zie niet eens in wat je vraag verder met random waarden te maken heeft? Er is niets random als je een waarde uit een formulier kiest? :?

Verder: zie André. We verwachten hier van een topicstart wat meer eigen inzet en zelfwerkzaamheid. Wat heb je gezocht/gevonden/geprobeerd? Wat werkte er niet aan?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Het formulier heb ik gemaakt waar 4 waardes ingevoerd kunnen worden.

Vervolgens word die doorgelinkt naar een php pagina waar alle 4 de ingevoerde waardes worden getoont.
Dat is niet mijn bedoelling. Mijn bedoelling is dat 1 van die 4 ingevoerde waardes word getoont op het scherm. Iedere keer weer een andere in een andere volgorde (radom dus).
Dit krijg ik tot nu toe niet voor elkaar en ik heb dus ook geen idee welk "hoofd" commando van PHP ik ervoor moet gebruiken.
De PHP manual heb ik al doorzocht maar niks word me duidelijk.

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Snap je mijn post niet?

Systeem | Strava


  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

contradictie?

"naar een php pagina waar alle 4 de ingevoerde waardes worden getoont"
"Mijn bedoelling is dat 1 van die 4 ingevoerde waardes word getoont "

en bdw, het is getoonD

Wil je nou random of door invoer.

is overigens wel erg basic dit allemaal

[ Voor 15% gewijzigd door MeIsTwisted op 29-04-2005 13:33 ]

Multimonitor is relax :P


Verwijderd

Topicstarter
Ik ben met jouw oplossing aan het spelen..

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

-NMe- schreef op vrijdag 29 april 2005 @ 13:21:
Ik zie niet eens in wat je vraag verder met random waarden te maken heeft? Er is niets random als je een waarde uit een formulier kiest? :?
Maar hij kiest een willekeurige waarde van de ingevoerde velden, dan heb je de rand functie wel nodig lijkt me :P

Wat mij het makkelijkst lijkt is de $_POSTs allemaal in een array zetten. En iets in deze array random aanroepen.

Als je deze 2 dingen combineert moet je het wel leuk te realiseren wat jij wil :)

Verwijderd

Topicstarter
Wat heb ik tot nu toe (niet veel ik weet het, maar zoals al werd gezegt. "is overigens wel erg basic dit allemaal"

index.htm
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html><head><body><form action="index2.php" method="post">
Invoer 1:
<input type="text" name="invoer1" size="20"><BR>
Invoer 2:
<input type="text" name="invoer2" size="20"><BR>
Invoer 3:
<input type="text" name="invoer3" size="20"><BR>
Invoer 4:
<input type="text" name="invoer4" size="20"><BR>
Invoer 5:
<input type="text" name="invoer5" size="20"><BR>

<input type="submit" value="Start"></form>
</body>
</head>
</html>


Index2.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
//laat alle invoer zien

echo "Invoer1: $invoer1 <BR>";
echo "Invoer2: $invoer2 <BR>";
echo "Invoer3: $invoer3 <BR>";
echo "Invoer4: $invoer4 <BR>";
echo "Invoer5: $invoer5 <BR>";


//laat een willekeurige invoer zien

rand(invoer1,invoer5);


?>


De rand(); word zoieso niet afgedrukt op het scherm. en de echo's erboven zijn ervoor om weer te geven dat de waardes in ieder geval goed zijn doorgekomen.

Heeft iemand een oplossing voor mij zodat ik de computer toch één waarde kan laten kiezen uit de ingevoerde waarden?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Is het met php niet zo dat als je je inputvelden een naam als:
veldnaam[<hier een getal>]
definieert, dat ie die dan automatisch in een array plaatst?

edit:
stel dat je x invoervelden hebt:
getal = rand(1, x);
echo veldnaam[getal];

Dit zou het ongeveer wel moeten doen.

Ik zou als ik jou was de documentatie voor PHP eens gaan doorpluizen en wat tutorials online volgen. Je grip op de taal lijkt nog niet voldoende om met dit soort dingen te klooien.

[ Voor 52% gewijzigd door bigbeng op 29-04-2005 13:59 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 29 april 2005 @ 13:56:
Wat heb ik tot nu toe (niet veel ik weet het, maar zoals al werd gezegt. "is overigens wel erg basic dit allemaal"

De rand(); word zoieso niet afgedrukt op het scherm. en de echo's erboven zijn ervoor om weer te geven dat de waardes in ieder geval goed zijn doorgekomen.

Heeft iemand een oplossing voor mij zodat ik de computer toch één waarde kan laten kiezen uit de ingevoerde waarden?
index.htm
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html><head><body><form action="index2.php" method="post">
Invoer 1:
<input type="text" name="invoer[]" size="20"><BR>
Invoer 2:
<input type="text" name="invoer[]" size="20"><BR>
Invoer 3:
<input type="text" name="invoer[]" size="20"><BR>
Invoer 4:
<input type="text" name="invoer[]" size="20"><BR>
Invoer 5:
<input type="text" name="invoer[]" size="20"><BR>

<input type="submit" value="Start"></form>
</body>
</head>
</html>


Index2.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
//laat alle invoer zien

$i = 1;
foreach ($_POST['invoer'] as $invoer) {
  echo "Invoer" . $i++ . ": " . $invoer . " <BR>";
}

//laat een willekeurige invoer zien

echo "Random: " . $_POST['invoer'][rand(0, count($_POST['invoer']) - 1)];

?>

Dat is alles. :P

[ Voor 27% gewijzigd door NMe op 29-04-2005 14:02 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • man-o-script
  • Registratie: Juni 2001
  • Laatst online: 06-05 21:06
Dit is wel erg basic hoor, als je die rand wilt laten zien moet je er wel echo voorzetten, bovendien ben je de $ vergeten voor de variabelen ;)
Maar ook dit is niet de manier, want dan kiest hij een waarde die tussen invoer 1 en invoer 5 zit, en dat kan ook een waarde zijn die helemaal niet gekozen is.

Een mooiere oplossing is denk ik de invoer 1 t/m 5 in een array te gooien en daar random eentje uit de vissen met array_rand(), en die dan weer te geven :)

Of het te copy/pasten van -NMe- :P

[ Voor 5% gewijzigd door man-o-script op 29-04-2005 14:03 ]

//


  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Wat zijn jullie lief vandaag, normaal was ie al dicht geweest :P

Systeem | Strava


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Brakkie schreef op vrijdag 29 april 2005 @ 14:02:
Wat zijn jullie lief vandaag, normaal was ie al dicht geweest :P
Ik ben altijd lief! :(

Dit is het eerste P&W topic van de topicstarter, dus een beetje lief doen kan geen kwaad. Bovendien modden we niet alleen op niveau, maar ook op inzet, en dat valt hier wel mee. :)

Overigens, Spons., het is wel een goed idee om onze FAQ eens door te nemen, en dan met name dit stukje: P&W FAQ - De "quickstart". Op die manier kun je de volgende keer een topic openen dat wat beter loopt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Ik ben op dit moment even aan het spelen met de oplossing van -NMe-
Hier was ik opzich een tijdje terug al mee aan het spelen maar ik kreeg telkens een foutmelding.
Deze krijg ik nu dus ook:

Warning: Invalid argument supplied for foreach() in /home/virtual/site41/fst/home/test/public_html/data/index2.php on line 5
Random:
Warning: rand() expects parameter 1 to be long, string given in /home/virtual/site41/fst/home/test/public_html/data/index2.php on line 13

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 29 april 2005 @ 14:06:
Ik ben op dit moment even aan het spelen met de oplossing van -NMe-
Hier was ik opzich een tijdje terug al mee aan het spelen maar ik kreeg telkens een foutmelding.
Deze krijg ik nu dus ook:

Warning: Invalid argument supplied for foreach() in /home/virtual/site41/fst/home/test/public_html/data/index2.php on line 5
Heb je je formulier wel aangepast? Als je goed kijkt zie je dat ik de namen aangepast heb van je inputs.
Random:
Warning: rand() expects parameter 1 to be long, string given in /home/virtual/site41/fst/home/test/public_html/data/index2.php on line 13
Dit gaat om dezelfde reden fout. count($_POST['invoer']) kan waarschijnlijk niet omdat het geen array is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op vrijdag 29 april 2005 @ 14:10:
[...]

Heb je je formulier wel aangepast? Als je goed kijkt zie je dat ik de namen aangepast heb van je inputs.

[...]

Dit gaat om dezelfde reden fout. count($_POST['invoer']) kan waarschijnlijk niet omdat het geen array is.
Precies.. Bij het formulier heb ik de array haken erachter gezet (of moeten daar nog nummers in? nee toch 8)7 )
maar tevergeefs..

[edit]Zojuist heb ik het voor elkaar gekregen :) Ik ga nog ff een ijskoude douche nemen want dit soort fouten mag ik echt nooit meer maken :D

Het enige nadeel is dat het zo traag reageert maar daar had je geloof ik weer microtime() voor..
Hartstikke bedankt en volgende zal ik het meer aanpakken zoals julie het wensen ;)

[ Voor 27% gewijzigd door Verwijderd op 29-04-2005 14:24 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Nee, moeten geen nummers in. Doe eens print_r($_POST) op de pagina waar je die random waarde kiest.

(Overigens wel standaard debugwerk dit. P&W FAQ - Leer **** debuggen!! ;))

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op vrijdag 29 april 2005 @ 14:21:
Nee, moeten geen nummers in. Doe eens print_r($_POST) op de pagina waar je die random waarde kiest.

(Overigens wel standaard debugwerk dit. P&W FAQ - Leer **** debuggen!! ;))
debuggen ken ik wel ;) maar had er ff geen zin in :P sorry B)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 29 april 2005 @ 14:24:
debuggen ken ik wel ;) maar had er ff geen zin in :P sorry B)
Sorry, maar om die reden doe ik je topic alsnog op slot. Er wordt natuurlijk wel van je verwacht dat je zelf je eigen code kunt debuggen, en dit ook doet. Wij kunnen (en willen :P) dat niet voor je doen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.