Multiple checkbox antwoorden in een function

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Albert de Wit

Albert de Wit

14/05/2012 09:50:17
Quote Anchor link
Hallo,

Ik heb een function gemaakt die checkboxes genereert aan de hand van het aantal rijen in een database met natuurlijk als value de waarde van die rij.

Het probleem is dat ik graag de keuzes wil onthouden als iemand die keuzes maakt.

hier worden de checkboxes gegenereerd

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$query_merk
= mysql_query("SELECT merk FROM producten WHERE merk!=''");
    while ($row = mysql_fetch_row($query_merk))
    {

      $code .= "<input type='checkbox' name='".$row[0]."'";
      
      $code .= "value='".$row[0]."'>".$row[0]."<br>";
    }

return $code;
?>


wat het grote probleem is als de database word aangevuld dat de checkboxes ook weer moeten gegenereerd worden. In een functie moet je tussen de () de waardes invoeren die worden gebruikt in de functie. Ik kan moeilijk elke minuut tussen die () steeds weer een variabele bijschrijven.

de code die in de functie moet komen is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if ($deze_checkbox==$row[0])
{

  $code .= " checked='true'";
}

?>

het probleem ligt dus in die haakjes.

heeft iemand een oplossing hiervoor?
alvast bedankt!
 
PHP hulp

PHP hulp

28/11/2024 20:53:45
 
Erwin H

Erwin H

14/05/2012 10:26:16
Quote Anchor link
Daar heb je toch arrays voor?
 
Albert de Wit

Albert de Wit

14/05/2012 10:26:54
Quote Anchor link
kun je een array wel in een functie meegeven?
 
Erwin H

Erwin H

14/05/2012 10:28:39
Quote Anchor link
Zelfs dat zou kunnen, maar uiteraard bedoel ik het andersom. Je geeft de array mee in de functie.
 
Albert de Wit

Albert de Wit

14/05/2012 11:35:38
Quote Anchor link
bah ik kom helemaal vast te zitten. heeft dat iets met die array te maken?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<table class='zoekmachine'>
       <tr>
           <td class='sorteeropties'>
           <form action='index.php' method='GET'><?php
           if (isset($GET['zoek']))
           {

             for ($i=0;$i<count($_GET['provincie']);$i++)
             {

               $provincie[$i] = $_GET['provincie'][$i];
             }
           }

           else
           {
             $provincie = '';
           }

           $function->sorteeropties($provincie);
           ?>
</form>
           </td>
           <td class='zoekresultaten'>
           </td>
       </tr>
</table>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
public function sorteeropties($provincie)
  {
// connectie maken met de database
    $this->Connect('localhost','root','','test');
    $query = mysql_query("SELECT provincie FROM sorteeropties WHERE provincie!=''");

    while ($row = mysql_fetch_row($query))
    {

      $this->code .= "<input type='checkbox' name='provincie'";
      if ($provincie!='')
      {

        for ($i=0;$i<9;$i++)
        {

          if ($provincie[$i]==$row[0])
          {

            $this->code .= " checked='true' ";
          }
        }
      }

      $this->code .= "value='".$row[0]."'>".$row[0]."<br>";
    }

    return $this->code;
  }

?>
 
Erwin H

Erwin H

14/05/2012 11:58:10
Quote Anchor link
Waar kom je vast te zitten dan? Wat gaat er niet zoals je wilt?

En om te controleren of een waarde in een array zit kan je ook de functie in_array gebruiken.
 
Albert de Wit

Albert de Wit

14/05/2012 12:04:44
Quote Anchor link
er word niks gereturnd. Ook als ik voor regel 22 het lijntje $this->code = 'hellow world'; krijg ik niks terug terwijl ik wel de foutmeldingen Undefined offset: 0 in blahblah on line 183(regel 14 hier) krijg.
Gewijzigd op 14/05/2012 12:05:25 door Albert de Wit
 
Erwin H

Erwin H

14/05/2012 12:07:38
Quote Anchor link
Zet dan eens

print_r( $provincie )

aan het begin van die functie, om te controleren wat er in de array zit.
 
Albert de Wit

Albert de Wit

14/05/2012 12:20:36
Quote Anchor link
dan krijg ik niks terug. Ik zei al eerder dat ik niks meer terug kreeg alsof ik de functie niet aanroepte maar ik krijg wel een zooi error msges
 
Erwin H

Erwin H

14/05/2012 12:28:14
Quote Anchor link
Dan is het dus zaak om die error messages een voor een op te lossen.
 
Albert de Wit

Albert de Wit

14/05/2012 12:53:43
Quote Anchor link
dat heb ik al gedaan door die loops weg te halen maar nog steeds krijg ik niks terug
 
- SanThe -

- SanThe -

14/05/2012 13:14:15
Quote Anchor link
Eerst gaat het over producten en merken, en nu opeens over provincies? Vreemd.
 
Erwin H

Erwin H

14/05/2012 13:14:41
Quote Anchor link
En wat doe je dan, niets?
Met de info die je elke keer geeft kan ik van afstand in elk geval bijzonder weinig. Dus of probeer zelf iets (controleer bijvoorbeeld per regel of je een string kan echoen naar het scherm zodat je kan zien waar het vastloopt), of geef meer bruikbare info.
 
Albert de Wit

Albert de Wit

14/05/2012 13:17:11
Quote Anchor link
@- SanThe -
Ik gaf eerst een voorbeeld omdat ik het daar eerst mee testte.

Verder heb ik bovenaan de functie een return gezet maar omdat dat niks oplevert levert de rest ook niks op.
 
- SanThe -

- SanThe -

14/05/2012 13:20:57
Quote Anchor link
Al de checkboxen hebben dezelfde naam?

<input type='checkbox' name='provincie'.....


Dus als er twee aangevinkt worden pakt ie altijd de eerste/laatste. (Doorhalen wat niet van toepassing is).
Gewijzigd op 14/05/2012 13:22:42 door - SanThe -
 
Albert de Wit

Albert de Wit

14/05/2012 13:21:42
Quote Anchor link
ja is dat verkeerd?
 
- SanThe -

- SanThe -

14/05/2012 13:23:18
Quote Anchor link
Zie mijn edit.
 
Albert de Wit

Albert de Wit

14/05/2012 13:27:31
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (isset($GET['sorteer']))
           {

             for ($i=0;$i<count($_GET['provincie']);$i++)
             {

               $provincie[$i] = $_GET['provincie'][$i];
             }
           }

           else
           {
             $provincie = '';
           }

?>


Het word in een array gezet
 
- SanThe -

- SanThe -

14/05/2012 13:31:06
Quote Anchor link
- SanThe - op 14/05/2012 13:20:57:
<input type='checkbox' name='provincie'.....


In dit geval heeft, indien er één of meerdere zijn aangevinkt, $_GET['provincie'] slechts één waarde. Wil je een array dan doe je zo:

<input type='checkbox' name='provincie[]'.....
 
Albert de Wit

Albert de Wit

14/05/2012 13:33:50
Quote Anchor link
ja sorry, dat had ik al wel in mn editor aangepast maar hier nog niet. Maar dat speelt geen rol omdat er nog geen knop is ingedrukt.

Hij hoort een rij checkboxes met achter elke een provincie te zetten
 
- SanThe -

- SanThe -

14/05/2012 13:38:42
Quote Anchor link
Ik snap nog steeds niet wat je nou precies wilt maken.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.