rebonjour à tous
Après plusieurs jours de recherche et de test, je viens de retravailler mon formulaire en MVC:
Voici mon Modele: membre.class.php
Voici Mon controller : add.php
[t ma vue : un simple formulaire
Mon problème est le suivant :
j'ai une erreur dans mon controller concernant mon execute()
l'erreur est :
Catchable fatal error: Object of class membre could not be converted to string in C:\wamp\www\lorraine_call_admin\LorraineCallAdmin\controller\addClass.php on line 36[/list]
Je ne sais pas, malgrès plusieur solutions sur le net, comment résoudre mon problème
Modifié par Palerm0_57 (12 Jun 2014 - 14:12)
Après plusieurs jours de recherche et de test, je viens de retravailler mon formulaire en MVC:
Voici mon Modele: membre.class.php
<?php
class membre {
private $id_membre;
private $nom_membre;
private $prenom_membre;
private $date_naissance;
private $cp_membre;
private $adresse_membre;
private $ville_membre;
private $pays_membre;
private $tel_membre;
private $email_membre;
public function __construct(array $params)
{
foreach($params as $k => $p)
{
$kTmp = explode('_', $k);
foreach($kTmp as &$k2)
{
$k2 = ucfirst($k2);
}
$methodName = 'set' . implode('', $kTmp);
if(method_exists($this, $methodName))
{
$this->$methodName($p);
}
}
}
public function getId_membre() {
return $this->id_membre;
}
public function getNom_membre() {
return $this->nom_membre;
}
public function getPrenom_membre() {
return $this->prenom_membre;
}
public function getDate_naissance() {
return $this->date_naissance;
}
public function getCp_membre() {
return $this->cp_membre;
}
public function getAdresse_membre() {
return $this->adresse_membre;
}
public function getVille_membre() {
return $this->ville_membre;
}
public function getPays_membre() {
return $this->pays_membre;
}
public function getTel_membre() {
return $this->tel_membre;
}
public function getEmail_membre() {
return $this->email_membre;
}
public function setId_membre($id_membre) {
$this->id_membre = $id_membre;
}
public function setNom_membre($nom_membre) {
$this->nom_membre = $nom_membre;
}
public function setPrenom_membre($prenom_membre) {
$this->prenom_membre = $prenom_membre;
}
public function setDate_naissance($date_naissance) {
$this->date_naissance = $date_naissance;
}
public function setCp_membre($cp_membre) {
$this->cp_membre = $cp_membre;
}
public function setAdresse_membre($adresse_membre) {
$this->adresse_membre = $adresse_membre;
}
public function setVille_membre($ville_membre) {
$this->ville_membre = $ville_membre;
}
public function setPays_membre($pays_membre) {
$this->pays_membre = $pays_membre;
}
public function setTel_membre($tel_membre) {
$this->tel_membre = $tel_membre;
}
public function setEmail_membre($email_membre) {
$this->email_membre = $email_membre;
}
public function getReqParams()
{
return array('nom_membre' => $this->getNom_membre(),
'prenom_membre' => $this->getPrenom_membre(),
'date_naissance' => $this->getDate_naissance(),
'code_postal' => $this->getCp_membre(),
'adresse' => $this->getAdresse_membre(),
'ville' => $this->getVille_membre(),
'pays' => $this->getPays_membre(),
'tel' => $this->getTel_membre(),
'email' => $this->getEmail_membre(),
);
}
}
Voici Mon controller : add.php
<?php
require_once 'connect.php';
require_once '../model/membre.class.php';
require_once 'loadingView.php';
class Add {
public static function addMembre($membre)
{
$connexion = Connexion::getInstance();
if(!is_array($membre))
{
$membre = array($membre);
}
$sql = $connexion->query('INSERT INTO ps_membre(id_membre,nom_membre,prenom_membre,date_naissance,cp_membre,adresse_membre,ville_membre,pays_membre,tel_membre`,email_membre)
VALUE(?,?,?,?,?,?,?,?,?)');
$sql->execute($membre);
foreach($membre as $member)
{
$params = $member->getReqParams();
echo"<pre> mon ";print_r($params);
foreach($params as $k => $v)
{
echo"<pre>";echo print_r($k);
$sql->bindParam(':' . $k,$v);
}
}
return $sql;
}
}
$membre = new membre(array(
'nom_membre' => $_POST['nom'],
'prenom_membre' => $_POST['prenom'],
'date_naissance' => $_POST['date_naissance'],
'cp_membre' => $_POST['code_postal'],
'adresse_membre' => $_POST['adresse'],
'ville_membre' => $_POST['ville'],
'pays_membre' => $_POST['pays'],
'tel_membre' => $_POST['tel'],
'email_membre' => $_POST['email'],
));
echo $membre->getNom_membre();
echo $membre->getPrenom_membre();
echo $membre->getEmail_membre();
echo"<pre>";print_r($membre);
Add::addMembre($membre);
[t ma vue : un simple formulaire
<form id="register-form" class="form" action="../controller/addClass.php" method="POST">
<legend>DEPOT D'ANNONCE</legend>
<hr>
<div class="body">
<!-- ENTREPRISE -->
<label for="name">NOM</label>
<input name="nom" class="input-huge" type="text">
<!-- TITRE DE LA MISSION -->
<label for="surname">PRENOM</label>
<input name="prenom" class="input-huge" type="text">
<!-- VILLE DE LA MISSION -->
<label for="surname">DATE NAISSANCE</label>
<input name="date_naissance" class="input-huge" type="text">
<!-- DESCRIPTION DE L'OFFRE -->
<label for="surname">CODE POSTALE</label>
<input name="code_postal" class="input-huge" type="text">
<!-- DESCRIPTION DE L'OFFRE -->
<label for="surname">ADRESSE</label>
<input name="adresse" class="input-huge" type="text">
<!-- DESCRIPTION DE L'OFFRE -->
<label for="surname">VILLE</label>
<input name="ville" class="input-huge" type="text">
<!-- DESCRIPTION DE L'OFFRE -->
<label for="surname">PAYS</label>
<input name="pays" class="input-huge" type="text">
<!-- DESCRIPTION DE L'OFFRE -->
<label for="surname">TELEPHONE</label>
<input name="tel" class="input-huge" type="text">
<label for="surname">EMAIL</label>
<input name="email" class="input-huge" type="text">
</div>
<div class="footer">
<button type="submit" name="submit" class="btn btn-success">Enregistrer</button>
</div>
</form>
Mon problème est le suivant :
j'ai une erreur dans mon controller concernant mon execute()
$sql->execute($membre);
l'erreur est :
Catchable fatal error: Object of class membre could not be converted to string in C:\wamp\www\lorraine_call_admin\LorraineCallAdmin\controller\addClass.php on line 36[/list]
Je ne sais pas, malgrès plusieur solutions sur le net, comment résoudre mon problème
Modifié par Palerm0_57 (12 Jun 2014 - 14:12)