Bonjour tout le monde, je suis entrain de réaliser une application pour vote sous PHP,
L'utilisateur doit cliquer sur "Je suis intéréssé" ou "Pas intéréssé", et le vote est transmis ensuite à la base de données.
Le but étant de rendre ces cases invisibles une fois que le vote est envoyé par l'utilisateur.
Un utilisateur est identifié par son matricule.
J'ai créé deux fichiers :
index.php
Et un fichier insert.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php session_start(); $connect = mysqli_connect("localhost", "root", "", "test"); $query = "SELECT * FROM response WHERE matricule ='" . $mat . "'"; $result = mysqli_query($connect, $query); $mat = $_SESSION['matricule']; ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>OnClick Insert Radio Button value into Database using PDO in Jquery Ajax PHP | SoftAOX Tutorial</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> </head> <body> <?php //Vérifie si la personne a bien voté ou pas while ($row = mysqli_fetch_array($result)) { if( $mat != $row['matricule'] ) { ?> <h1> Vote</h1> <input type="radio" name="response" value="Je suis intérésse">Je suis intérésse<br/><br/> <input type="radio" name="response" value="Je ne suis pas intéréssé">Je ne suis pas intéréssé<br/><br/> <h3 id="result"></h3> <br/> <?php } else echo "Vous avez déjà voté"; } ?> <script> $(document).ready(function(){ $('input[type="radio"]').click(function(){ var response = $(this).val(); $.ajax({ url:"insert.php", method:"POST", data:{response:response}, success: function(data){ $('#result').html(data); } }); }); }); </script> </body> </html>
Le vote est bien inséré à la base de données avant que j'introduise la condition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php session_start(); //Insert Data $hostname = "localhost"; $username = "root"; $password = ""; $databasename = "test"; $matricule= $_SESSION['matricule']; try { $conn = new PDO("mysql:host=$hostname;dbname=$databasename",$username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); if(isset($_POST["response"])) { $query = "INSERT INTO response(response, matricule) VALUES (:response, :matricule)"; $statement = $conn->prepare($query); $statement->execute( array( 'response' => $_POST["response"], ':matricule' => $matricule ) ); $count = $statement->rowCount(); if($count > 0) { echo "Merci d'avoir voté"; } else { echo "L'insersion a echoué !"; } } } catch(PDOException $error) { echo $error->getMessage(); } ?>
J'ai un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php while ($row = mysqli_fetch_array($result)) { if( $mat != $row['matricule'] ) { ?>Merci de votre aidemysqli_fetch_array() expects parameter 1 to be mysqli_result.
Partager