[php] Loop in een andere loop

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • software
  • Registratie: Mei 2003
  • Laatst online: 02-01 09:26
Ik heb een message systeem gemaakt, maar nu loop ik tegen een probleem aan.

In de array ($loopuser) staat
Array (
0 => 1
1 => 3
)

De output ziet er nu als volgt uit
Cb = Checkbox.
Naam Voornaam CB CB (de eerste CB staat disable (id waarde staat in de array))
Naam2 Voornaam2 CB CB
Naam3 Voornaam3 CB CB (de tweede CB staat disable (id waarde staat in de array))

Als er 2 elementen in de array zitten krijg ik 2 checkboxen. Als er 3 elementen inzitten krijg ik 3 checkboxen, etc...

Naam Voornaam CB CB CB (de eerste CB staat disable (id waarde staat in de array))
Naam2 Voornaam2 CB CB CB (de tweede CB staat disable (id waarde staat in de array))
Naam3 Voornaam3 CB CB CB (de derdeCB staat disable (id waarde staat in de array))

Script :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? while ($obj=mysql_fetch_object($sql)) {   
                ?>
              <tr>
                <td valign="top"><? echo $obj->lastname; ?></td>
                <td valign="top"><? echo $obj->firstname; ?></td>
                <td valign="top">
                <? if(empty($loopuser)){
                echo '<input name="name[]" type="checkbox"  value="'.$obj->id.'" >';
                }else{
                reset($loopuser);                
                    foreach ($loopuser as $key => $val) {
                     if($val == $obj->id){
                        echo '<input name="name[]" type="checkbox"  value="'.$obj->id.'" disabled>';
                    }else{?>
                        <input name="name[]" type="checkbox"  value="<? echo $obj->id; ?>" >
                <? }} }?>

Wat moet het uiteindelijk worden ?
Naam Voornaam CB (id is gelijk aan 1 checkbox disable (staat in array))
Naam2 Voornaam2 CB (id is gelijk aan 2 checkbox enable (staat niet in array))
Naam3 Voornaam3 CB(id is gelijk aan 3 checkbox disable (staat in array))

Kunnen jullie mij helpen ?

Acties:
  • 0 Henk 'm!

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

NMe

Quia Ego Sic Dico.

En wat is nu eigenlijk het probleem? Je zegt wel wat je nu hebt en waar je naartoe wil, maar ik lees nergens wat je huidige script dan doet. Verder heb ik sowieso niet echt een idee van waar je naartoe wil. Kun je wat duidelijker zijn?

Overigens geven disabled inputs geen waarde door, dus als je die waarden nodig hebt in je verwerkende script, dan kun je de checkboxes niet disablen. :)

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

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Je code is nu vrij warrig. De ene keer sluit je PHP wel af om wat te echo'en, de andere keer niet. Ook zou ik niet zomaar drie accolades met een spatie achter elkaar zetten, zeker niet als je je code wel indent.

Verder zegt iets me dat je dit niet helemaal zelf hebt gemaakt, maar vooruit:

PHP:
1
2
3
4
5
6
foreach ($loopuser as $key => $val) { 
if($val == $obj->id){ 
  echo '<input name="name[]" type="checkbox"  value="'.$obj->id.'" disabled>'; 
}else{
  echo '<input name="name[]" type="checkbox"  value="'.$obj->id.'">';
}

In dit stukje loop je steeds de hele array door, en elke keer echo je wat. Dus voor elk element in je array echo je een nieuwe checkbox. Door met in_array te werken hoef je niet steeds je hele array door te lopen.

[ Voor 12% gewijzigd door GlowMouse op 05-06-2005 19:20 ]


Acties:
  • 0 Henk 'm!

  • software
  • Registratie: Mei 2003
  • Laatst online: 02-01 09:26
Bedankt iedereen.
Het is gelukt, ik heb gewerkt zoals GlowMouse zei : met in_array.
Nogmaal dank