Oké, ik kan een value uit een list halen, maar ik weet niet hoe je dit moet echoën met object oriented PHP...Ik wil het per se met OOP doen, want ik moet dat leren.

Dit is mijn code:

<?php

class Groep
{
public $groepnaam;

//Groepnaam bepalen
public function setGroupName($groupname)
{
$this-> groepnaam = $groupname;
}

//Groepnaam op het scherm kunnen zien
public function getGroupName()
{
return $this-> groepnaam;
}

//Categorie bepalen
public function setCatagory()
{
$this-> category = $category;
}

//Categorie op het scherm kunnen zien
public function getCatagory()
{
return $this-> category;
}
}

if(isset($_POST['button']))
{
//Groep
$groep = new Groep;
$groep -> setGroupName($_POST['groepsnaam']);
echo $groep->getGroupName();

//Category
echo "U koos ".$_POST['category'];
$groep -> setCategory($_POST['groepsnaam']);
echo $groep->getCategory();
}

?>

Deze error krijg ik:



Notice: Undefined index: category in F:\usbwebserver\root\testest\groepmaken.php on line 78
U koos
Fatal error: Call to undefined method Groep::setCategory() in F:\usbwebserver\root\testest\groepmaken.php on line 79
<?php
//Categorie bepalen
public function setCatagory()
{
$this-> category = $category;
}
?>
$category (de waarde die je wilt zetten) is hier niet meegegeven in de functie en je hebt een tikfout gemaakt (catAgory ipv catEgory). Je functie definitie moet dus zijn: public function setCategory( $category );

Verder zou ik je aanraden om geen spaties te gebruiken tussen de objectnaam en de method of property. Hoewel ik net heb getest en het wel werkt, is het voor jezelf overzichtelijker als je er gewoon geen spaties tussen zet.
En programmeer of in het nederlands of het in engels, waarbij engels mijn voorkeur heeft. Een Groep klasse in combinatie met een setGroupName kan niet. (nederlandse naam met engelse methods)

Verder stel je hier zowel category als groupname in als $_POST['groepnaam'] is dat ook niet een vergissing?

En nog wat andere tips:
- kijk of er iets gepost is met if( $_SERVER['REQUEST_METHOD'] == 'POST' )
- category komt niet voor in de klasse, je bent hem vergeten te plaatsen op regel 6.
- zet variabele in een klasse altijd op protected of private, nooit public. Deze kan je zomaar bewerken en dat is niet goed. Ook forceer je jezelf nu om getters en setters te gebruiken, wat alleen maar goed is.
- je bent de category parameter in de setCatagory method vergeten.

[hr]
Dit topic hoort thuis in het Object Geörienteerd forum, niet in de techtalk.

Reageren