[php/html] Multiple Ranking *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,
Ik ben een simpel script aant maken voor stage plaatsen te beoordelen.

een index.php file met <form> text boxen & drop down boxen </form>
En een send.php file, die de data binnen krijgt.
eerst zet ik de data van een textbox om :

$rank_1 = $HTTP_POST_VARS['rank_1']; // bijvoorbeeld van vraag 1

en dan zet ik die waarde om in sterretjes:

if ($rank_1=='1') {
$starshow_rank_1="[img]'images/star.gif'[/img]";
}

Dit werkt trouwns alleen voor textboxen, en ik krijg het maar niet werken voor een drop down boxen? Als ik bijvoorbeeld bij een drop down box een optie toevoeg ; "heel goed" met "value 5", dan krijg ik niks te zien bij send.php.

Maar nu de echt vraag, ik wil de input forms namen geven zoals 'rank_1'. Bestaat er een manier om de waarde van elke rank_(n) die wordt weergegeven met een script om te zetten naar een hoeveelheid sterren (star.gif) .


zou erg dankbaar zijn :)

thanks

Frank

Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
Kijk eens naar een for-loop volgens mij zoek je dat namelijk :)

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Dit lijkt mij meer een HTML dan een php probleem te zijn. Het is daarom wel handig als je even de code van je form laat zien, dan kunnen we besluiten het al dan niet naar Webdesign & Graphics te doen.

Verder: **** Over topictitels in P&W - Updated 9 mei 04 ****

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Index.php // hier komen alle vragen

<form id="" name="" method="POST" action="send.php">
<table border="1" width="100%" id="table1">
<tr>
<td>
vraag 1</td>
<td>
<input type="text" size="30" value="" name="rank_1"></td>
</tr>
<tr>
<td>vraag2</td>
<td><select size="1" name="rank_2">
<option value="1">Slecht</option>
</select></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="submit" name="welcome"></td>
</tr>
</table>
</form>

Send.php // hier komen de hoeveelheid sterren die elke vraag krijgt
<?php
$rank_1 = $HTTP_POST_VARS['rank_1'];
$rank_2 = $HTTP_POST_VARS['rank_2'];
?>


<?php
if ($rank_1=='1') {
$starshow_rank_1="[img]'images/star.gif'[/img]";
}
if ($rank_1=='2') {
$starshow_rank_1="[img]'images/star.gif'><img[/img]";
}
if ($rank_2=='1') {
$starshow_rank_1="[img]'images/star.gif'[/img]";
}
if ($rank_2=='2') {
$starshow_rank_1="[img]'images/star.gif'><img[/img]";
}
?>
<html>

<head>
<title>New Page 1</title>
</head>

<body>vraag1 :<br>
<?php
echo $starshow_rank_1;
?>

<body>vraag2 :<br>
<?php
echo $starshow_rank_2;
?>

</body>

</html>

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Misschien leuk als je een echt array maakt van de variabele-namen, dus <select name="rank[1]"> enz.
Daarna kun je er met een foreach doorheen loopen:
PHP:
1
2
3
4
5
6
$ranks = $_POST['rank'];  // Gebruik asjeblieft $_POST ipv $HTTP_POST_VARS :)
foreach ($ranks as $rank) {
  for ($i = 1; $i <= $rank; $i++) {
    echo '[img]"images/star.gif"[/img]';
  }
}

Zoiets zou prima moeten werken. :)

[ Voor 12% gewijzigd door NMe op 12-10-2004 23:57 . Reden: $ toegevoegd op regel 3 ]

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi NMe84 bedankt voor je reply.
Ik heb je script in send.php gezet .. en de drop down boxen heten rank[1], etc.
Maar volgens mij doe ik nog iets verkeerd want ik krijg een

"parse error, unexpected '=', expecting ';' in /xxx on line 5"

Ik heb zelf al wat proberen te veranderen eraan, maar dan krijg ik alleen maar meer errors erbij 8)7

anyone ?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik was een $ vergeten voor de i op regel 3, had je zelf ook kunnen zien. ;)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
En geef ik de output gewoon aan met <?php ehco $rank[1] ?>

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 13 oktober 2004 @ 00:05:
En geef ik de output gewoon aan met <?php ehco $rank[1] ?>
Is dit een opmerking of een vraag? :P

De aangepaste versie van mijn code zou gewoon moeten werken. Bij mij wel iig. :)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
haha ja dat was een vraag :*) want ik heb nou precies jou script zo staan op de send page .. en dan <?php echo $rank[1]; ?> .. maar dan geeft ie niks weer. ;(

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 13 oktober 2004 @ 17:22:
haha ja dat was een vraag :*) want ik heb nou precies jou script zo staan op de send page .. en dan <?php echo $rank[1]; ?> .. maar dan geeft ie niks weer. ;(
Dat komt omdat ik een array $ranks heb, en niet een array $rank. :P

'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.


Acties:
  • 0 Henk 'm!

  • blizt
  • Registratie: Januari 2003
  • Laatst online: 11-12-2024

blizt

Wannabe-geek

Even een tip fb2003: gebruiki error_reporting(E_ALL) (dan had je de fout van $ranks i.p.v. $rank gezien)...
Voor je gaat vragen hoe dat werkt allemaal: zie P&W FAQ - PHP en PHP.net.

United we stand, and divided we fall


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

blizt schreef op 13 oktober 2004 @ 18:26:
Even een tip fb2003: gebruiki error_reporting(E_ALL) (dan had je de fout van $ranks i.p.v. $rank gezien)...
Voor je gaat vragen hoe dat werkt allemaal: zie P&W FAQ - PHP en PHP.net.
Psst, dat had error_reporting(E_ALL); ook niet aan het licht gebracht. Ik gebruik namelijk zowel $rank als $ranks in mijn code snippet. ;)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hey .. toen ik in plaats van firefox explorer ging gebruiken leek het toch te werken .. maar nu ik meerdere drop down boxen gebruiken krijg ik dit:

Warning: Invalid argument supplied for foreach() in /var/www/frank/stage/send.php on line 4

whats with that ? 8)7

http://frank.peterbrils.com/stage

de files : http://frank.peterbrils.com/stage/pack.zip

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nou ik heb het nu gewoon zo gedaan :

dit bijv. voor vraag 1

<?php
if ($_POST['rank1']=='1') {echo "[img]'images/1.gif'>";} if[/img]";}
if ($_POST['rank1']=='3') {echo "[img]'images/3.gif'>";} if[/img]";}
if ($_POST['rank1']=='5') {echo "[img]'images/5.gif'>";} ?[/img]

haha .. wel niet zo prof. maar het werkt wel binnen 1 min,

Thanx,


Frank

Acties:
  • 0 Henk 'm!

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 18-09 20:05
Verwijderd schreef op 14 oktober 2004 @ 17:42:
Nou ik heb het nu gewoon zo gedaan :

dit bijv. voor vraag 1

<?php
if ($_POST['rank1']=='1') {echo "[img]'images/1.gif'>";} if[/img]";}
if ($_POST['rank1']=='3') {echo "[img]'images/3.gif'>";} if[/img]";}
if ($_POST['rank1']=='5') {echo "[img]'images/5.gif'>";} ?[/img]

haha .. wel niet zo prof. maar het werkt wel binnen 1 min,

Thanx,


Frank
Maak er dan het volgende van:
PHP:
1
2
3
<?php 
  echo "[img]'images/".$_POST['rank1'].".gif'>";
?[/img]

[ Voor 25% gewijzigd door paulh op 14-10-2004 18:22 ]

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


Acties:
  • 0 Henk 'm!

Verwijderd

Het handigst is hier toch gewoon om NMe84 zegt, een array te maken van de dingen in het form. Zoals hieronder
HTML:
1
2
3
4
5
6
<form method="post" action="testding.php">
    <input name="rank[0]" />
    <input name="rank[1]" />
    <input name="rank[2]" />
    <input type="submit">
</form>
Vervolgens kan je heel makkelijk deze sterretjes neerplempen met str_repeat. Meer dan een paar regels code kost het je niet, en ik durf haast te wedden dat het een stuk sneller is dan jouw laatste idee. Al is het maar om de single en double quotes, het hier handiger zijn van een switch, en als je al if's zou doen, het gebruik van else if.
PHP:
1
2
3
4
5
6
7
8
if(isset($_POST['rank']))
{
    foreach ($_POST['rank'] as $key =>$value)
    {
        echo "Waardering #{$key} <br />";
        echo str_repeat('[img]"images/star.gif"[/img]',$value) ;
    }
}
Pagina: 1