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

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>
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
<?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();
}
?>
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
<?php 
while ($row = mysqli_fetch_array($result))
{
 if( $mat != $row['matricule'] )
 
 {
 
?>
J'ai un message d'erreur
mysqli_fetch_array() expects parameter 1 to be mysqli_result.
Merci de votre aide