bonsoir ,je suis une débutante en php 5 quelqu'un peut m'aider, je veux savoir comment je peux accéder à une classe (livre) et appeler sa méthode (ajouterLivre()) dans un formulaire d'ajout d'un livre .
Version imprimable
bonsoir ,je suis une débutante en php 5 quelqu'un peut m'aider, je veux savoir comment je peux accéder à une classe (livre) et appeler sa méthode (ajouterLivre()) dans un formulaire d'ajout d'un livre .
Un formulaire en un élément HTML, il n'a pas de rapport avec des classes qui sont des éléments PHP.
Ton formulaire HTML peut avoir comme action un script PHP qui ferra tout ce que tu veux.
tout d'abord merci pour votre réponse, mais la page de formulaire est formulaireAjout.php , en + qu'est ce que je dois écrire dans l'action de formulaire pour accéder à la classe Livre ?
Ta question n'a pas de sens : un formulaire n'accède pas à une classe PHP.
Le formulaire a beau être dans un fichier .php, il reste un élément HTML traité par le navigateur.Citation:
mais la page de formulaire est formulaireAjout.php
Le formulaire ne fait qu'une seule chose : transmettre des données vers le serveur.
voilà mon formulaire :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php include ("includes/Livre.class.php"); $livre = new Livre();?> <?php // $livre->ajouterLivre();?> <form enctype="multipart/form-data" action="<?php $livre->ajouterLivre();?>" method="post"> <table align="center"> <tr><td class="active">Titre du livre : </td><td><input type="text" name="titre"></td></tr> <tr><td class="active">Image : </td><td><input type="file" name="image" value="importer"></td></tr> <tr><td class="active">Description : </td><td><textarea name="desc"></textarea></td></tr> <tr><td class="active">Nombre de pages : </td><td><input type="text" name="nbpage"></td></tr> <tr><td class="active">Auteur : </td><td><select name="auteur" id="auteur"><option>11</option></select></td></tr> <tr><td class="active">Catégorie : </td><td><select name="categorie" id="categorie"><option>11</option></select></td></tr> <tr><td></td><td><input type="submit" value="envoyer"></td></tr> </table> </form>
et voilà la classe livrela requête d'insertion "$sql" ne s’exécute pas pouvez vous me dire pourquoi ?Code:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 class livre { protected $titre , $id , $image , $description , $auteurs , $categories , $nbpages; public function __construct(){ $this->titre = $titre; $this->id = $id; $this->image = $image; $this->description = $description; $this->auteurs = $auteurs; $this->catégories = $catégories; $this->nbpages = $nbpages; } function ajouterLivre() { if(isset($_POST['titre'])) $this->titre = $_POST['titre']; else $this->titre = ""; if(isset($_POST['image'])) $this->image = $_POST['image']; else $this->image = ""; if(isset($_POST['desc'])) $this->description = $_POST['desc']; else $this->description = ""; if(isset($_POST['auteur'])) $this->auteur = $_POST['auteur']; else $this->auteur = ""; if(isset($_POST['categorie'])) $this->categories = $_POST['categorie']; else $this->categories = ""; if(isset($_POST['nbpage'])) $this->nbpages = $_POST['nbpage']; else $this->nbpages = ""; if(empty($titre) OR empty($image) OR empty($desc) OR empty($nbpage)) { header("Location:erreur/erreur.php"); } else { echo $this->titre ; require_once("includes/conex.php"); $sql = "INSERT INTO `livre` VALUES('$this->titre','$this->image','$this->description','$this->auteur','$this->categories','$this->nbpages')"; $id = mysql_insert_id(); return $id; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); mysql_close(); } }
C'est à se demander si tu le fais exprès! :roll:
Citation:
Envoyé par sabotage
Code:<form enctype="multipart/form-data" action="<?php $livre->ajouterLivre();?>" method="post">
Je redis encore une fois : un formulaire HTML envoi des données vers le serveur, plus précisément vers une page que l'on indique dans l'action du formulaire.
Dans cette page d'action, tu vas mettre le traitement des données reçues, et c'est la que tu pourras te servir de ta classe.
d'accord merci :)