Multiple checkbox antwoorden in een function

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Albert de Wit

Albert de Wit

14/05/2012 13:41:04
Quote Anchor link
Als mensen met checkboxen kunnen aangeven welke provincies ze willen zoeken wil ik dat hun keuze onthouden word.
Ik haal bovendien alle provincies uit een database (ik weet het is achterhaald maar ik exporteer deze later om makkelijk te kunnen verhuizen en aanpassen)
Als een checkbox is aangevinkt en de form word verstuurd word dezelfde pagina geladen om resultaten te laten zien. Maar ik wil dat die checkboxen die geselecteerd waren nog steeds geselecteerd zijn. Daar zit ik nu mee in de knoei
 
PHP hulp

PHP hulp

28/11/2024 23:36:23
 
Erwin H

Erwin H

14/05/2012 13:44:29
Quote Anchor link
Albert de Wit op 14/05/2012 13:17:11:
Verder heb ik bovenaan de functie een return gezet maar omdat dat niks oplevert levert de rest ook niks op.

Dat moet je natuurlijk nooit doen. Een return haalt je uit de functie. Alles wat na de return staat wordt dus niet meer uitgevoerd.
 
Albert de Wit

Albert de Wit

14/05/2012 13:47:01
Quote Anchor link
dat weet ik maar dat was de enige manier om te controleren of de functie wel werd aangeroepen maar ik kreeg niks terug. Gek genoeg krijg ik wel de foutmeldingen als ik een ; ofzo weghaal
 
- SanThe -

- SanThe -

14/05/2012 13:53:45
Quote Anchor link
Ik ben uitgegaan van een formulier die met POST wordt verzonden.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// query uitvoeren om alle provincies op te halen
while($row - mysql_fetch_assoc($result))
{

    echo '<input type="checkbox" name="provincie[]" value="' . $row['provincie'] . '"';
    echo (isset($_POST['provincie']) and in_array($row['provincie'], $_POST['provincie'])) ? ' checked' : '';
    echo '>' . $row['provincie'] . '<br />';
}

?>
 
Albert de Wit

Albert de Wit

14/05/2012 13:56:29
Quote Anchor link
Ik voer het uit in een functie omdat ik met OOP wat probeer te knutselen. Daarom werkt echo niet. Maar het gaat er vooral om dat hij helemaal niks returnd.
 
- SanThe -

- SanThe -

14/05/2012 13:58:46
Quote Anchor link
Zonder echo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// query uitvoeren om alle provincies op te halen
$return = '';
while($row - mysql_fetch_assoc($result))
{

    $return .= '<input type="checkbox" name="provincie[]" value="' . $row['provincie'] . '"';
    $return .= (isset($_POST['provincie']) and in_array($row['provincie'], $_POST['provincie'])) ? ' checked' : '';
    $return .= '>' . $row['provincie'] . '<br />';
}

return $return;
?>
 
Albert de Wit

Albert de Wit

14/05/2012 14:05:28
Quote Anchor link
Ik krijg zoals altijd niks terug.
Het probleem ligt hem niet bij het genereren van die checkboxen maar het probleem ligt erbij dat hij helemaal niks returnd in de functie zelf.
Gewijzigd op 14/05/2012 14:06:23 door Albert de Wit
 
- SanThe -

- SanThe -

14/05/2012 14:09:23
Quote Anchor link
Laat die functie eens zien. En hoe roep je die aan?
 
Erwin H

Erwin H

14/05/2012 14:16:02
Quote Anchor link
Albert, nogmaals de oproep om eens duidelijk te worden. Met de informatie die je geeft is bijzonder weinig te doen.
 
Albert de Wit

Albert de Wit

14/05/2012 14:23:38
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
14
15
16
17
18
19
20
21
22
23
24
25
26
<table class='zoekmachine'>
       <tr>
           <td class='sorteeropties'>
           <form action='index.php' method='GET'>
           <?php
           if (isset($GET['sorteer']))
           {

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


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

           else
           {
             $provincie = '';
           }

           $function->sorteeropties($provincie);
           ?>

           <input type='submit' value='Sorteer' name='zoek'>
           </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
<?php public function sorteeropties()
  {
// connectie maken met de database
  $this->Connect('localhost','root','','test');
  $result = mysql_query("SELECT provincie FROM sorteeropties WHERE provincie!=''");
  $return = '';
  while($row = mysql_fetch_assoc($result))
  {

    $return .= '<input type="checkbox" name="provincie[]" value="' . $row['provincie'] . '"';
    $return .= (isset($_POST['provincie']) and in_array($row['provincie'], $_POST['provincie'])) ? ' checked' : '';
    $return .= '>' . $row['provincie'] . '<br />';
  }

  return $return;
  }

?>

 
- SanThe -

- SanThe -

14/05/2012 14:27:44
Quote Anchor link
- SanThe - op 14/05/2012 13:53:45:
Ik ben uitgegaan van een formulier die met POST wordt verzonden.


Jouw formulier gebruikt GET. Pas in mijn stukje dan wel POST naar GET aan.

Je moet dit dan wel in een echo zetten:
$function->sorteeropties($provincie);
 
Albert de Wit

Albert de Wit

14/05/2012 14:40:22
Quote Anchor link
AAAAh!!!!!!!
dat was em!!! WAT ACHTERLIJK VAN MIJ!
dit soort foutjes kom ik altijd wel weer tegen en dit zal niet de laatste keer zijn
 
Erwin H

Erwin H

14/05/2012 14:42:22
Quote Anchor link
Je hebt nu twee dingen volledig door elkaar staan. In je script zet je alle gegevens vanuit een GET in een variabele $provincie en die geef je mee aan de functie.

Alleen die functie heeft geen argumenten, dus die hele variabele $provincie heb je niet meer nodig. In de functie gebruik je namelijk de $_POST waarde direct.

En dan, wat Santhe al zegt, de uitkomst van de functie moet je nog wel echoen, anders zie je inderdaad helemaal niets.

En een opmerkingen van andere aard: een object $function noemen is misschien niet de meest duidelijke keuze.
 
Albert de Wit

Albert de Wit

14/05/2012 14:43:33
Quote Anchor link
dus je hoeft $_POST waardes nooit in de haakjes () te zetten van een functie?
 
Erwin H

Erwin H

14/05/2012 14:52:07
Quote Anchor link
Dat is een keuze. Als je het object/functie onafhankelijk wil maken van de context dan moet je dat wel doen. Als je namelijk morgen hetzelfde object/functie wil gebruiken met waarden die niet in de POST staan (of in de GET), dan kan je dit niet meer gebruiken.

Maar in elk geval moet je dan wel zorgen dat de functie een argument accepteert, nu is dat niet het geval.
 
Albert de Wit

Albert de Wit

14/05/2012 14:55:33
Quote Anchor link
ok, bedankt voor de tip!

hartstikke bedankt allemaal voor jullie hulp
 

Pagina: « vorige 1 2



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.