Итак, я сделал опрос, единственная проблема, которая у меня есть, заключается в том, что я получаю в два раза больше значения комментария. Дело в том, что я хочу: для каждого вопроса получить значение переключателя и значение комментария. Любая помощь или советы приветствуются.Не получать значение радио кнопки php
Вот пример эхо:
choix = test1
comment = test1
INSERT INTO questionnaire(Choix,Commentara) VALUES('test1','test1')
Так, очевидно, я не получаю значения кнопок радио. Но в два раза больше значения textarea, которые я пишу '' test1 ''.
screenshot to help you understand
Вот мой код, чтобы отобразить на Custommer обследование и вставить Custommer метки и комментарии:
<?php
$link=Mysqli_connect($host,$login,$pass,$dbname);
$un = 0;
$kv = 0 ;
$msgerror = "Veuillez remplir tous les champs ";
if(isset($_POST["bouton10"])){
$id = !empty($_REQUEST["Picolo4"]) ? $_REQUEST["Picolo4"] : "";
$Nom = !empty($_REQUEST["Picolo1"]) ? $_REQUEST["Picolo1"] : "";
$Prenom = !empty($_REQUEST["Picolo2"]) ? $_REQUEST["Picolo2"] : "";
$Email = !empty($_REQUEST["Picolo3"]) ? $_REQUEST["Picolo3"] : "";
$RefClient = !empty($_REQUEST["Picolo5"]) ? $_REQUEST["Picolo5"] : "";
if ($id !="" && $Nom !="" && $Prenom !="" && $Email !="" && $RefClient !=""){
$recherche= "SELECT Ref,Question,Choix,Commentara FROM questionnaire WHERE Qref ='$id'";
mysqli_query($link,$recherche);
$result= mysqli_query($link,$recherche);
$num_results = $result->num_rows;
while ($row = mysqli_fetch_assoc($result)) {
$Ref =$row["Ref"];
$Question =$row["Question"];
$un++;
$kv++;
echo" <tr bgcolor=\"white\">
<td>$Question </td>
<td>
3<input type=\"radio\" name =\"$un\" id =\"un\" value = \"3\">
2<input type=\"radio\" name =\"$un\" id =\"un\" value = \"2\">
1<input type=\"radio\" name =\"$un\" id =\"un\" value = \"1\">
0<input type=\"radio\" name =\"$un\" id =\"un\" value = \"0\">
PA<input type=\"radio\" name =\"$un\" id =\"un\" value = \"PA\">
</td>
<td width = \"60\"> <textarea name =\"$kv\" id =\"kv\" rows=\"5\" placeholder=\"Votre commentaire\"></textarea> </td>
</tr>
</div>
</div>
";
}
}
else {
echo "<script type='text/javascript'>alert('$msgerror')</script>";
}
}
$kv = 1;
$un = 1;
$i= 1 ;
if (isset($_POST["bouton11"])) {
while(isset($_POST[$un])||(isset($_POST[$kv]))){
$choix = $_POST["$un"];
$comment = $_POST["$kv"];
$enregistrer = "INSERT INTO questionnaire(Choix,Commentara) VALUES('$choix','$comment') ";
$un++;
$kv++;
$i++;
echo"$choix";
echo "$comment";
echo"$enregistrer";
mysqli_query($link, $enregistrer);
}
//Besoin d'un correctif
//while(isset($_POST[$kv])) {
// $comment = $_POST["$kv"];
// $enregistrer2 = "INSERT INTO questionnaire(Commentara) VALUES('$comment')";
// $kv++;
// echo"$enregistrer2";
// mysqli_query($link, $enregistrer2);
//}
}
?>
Вот форма:
<DOCTYPE HTML>
<HTML>
<HEAD>
<TITLE>Foredeck_Testeur</TITLE>
<meta name="viewport" content="width=device-width, initial-scale=1" charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<link href="css/bootstrap.min.css" type="text/css" rel="stylesheet">
<link rel="stylesheet" href="css/footer-distributed-with-address-and-phones.css">
<link rel="stylesheet" href="css/tab.css">
<link href="http://fonts.googleapis.com/css?family=Cookie" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
<script type="text/javascript" src="jquery/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="js/tab.js"></script>
<style type="text/css">
.footer {
min-width: 100%;
height: auto;
text-align: center;
background: rgb(0, 0, 0);
position: fixed;
bottom: 0%;
margin-top: 50%;
}
.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -142px; /* the bottom margin is the negative value of the footer's height */
}
</STYLE>
</HEAD>
<BODY bgcolor="#6495ED">
<form method ="post" >
<table class="center-table" border ="1" align="center" >
<tr bgcolor="#b0bffc">
<td>Nom:</TD><TD><input type="text" class="form-control" name ="Picolo1" id="Picolo1" > </textarea></td><td><P>(Obligatoire*)</P></td>
</tr>
<tr bgcolor="#b0bffc">
<td>Prénom:</TD><TD><input type="text" class="form-control" name ="Picolo2" id="Picolo2"> </textarea></td><td><P>(Obligatoire*)</P></td>
</tr>
<tr bgcolor="#b0bffc">
<td>Email:</TD><TD><input type="mail" class="form-control" name ="Picolo3" id="Picolo3"> </textarea></td><td><P>(Obligatoire*)</P></td>
</tr>
<tr bgcolor="#b0bffc">
<td>Référence Questionnaire:</td>
<td><input type="text" class="form-control" name ="Picolo4" id="Picolo4" > </textarea></td> <td> (Obligatoire*)</td>
</tr>
<tr bgcolor="#b0bffc">
<td>Référence Client:</td>
<td><input type="text" class="form-control" name ="Picolo5" id="Picolo5" > </textarea></td> <td> (Obligatoire*)</td>
</tr>
<Tr>
<TD bgcolor="#b0bffc">
<Center><button type="submit" name="bouton10" id="bouton10" class="btn btn-default" >Confirmer</button></Center>
</TD>
</TR>
</table>
<BR>
<table class="center-table" border ="1" align="center" >
<tr bgcolor="#b0bffc"> <td> Question</td> <td>Choix</td> <td>Commentaires</td> </tr>
<?php
include("bdconnect_Foredeck.php");
include("foredeckaffiche_client.php");
include("foredeck_insert_client.php");
?>
</Table>
<BR>
<Center><button type="submit" name="bouton11" id="bouton11" class="btn btn-default" >Enregistrer</button></Center>
</BR>
</form>
<BR>
<BR>
<Center>
<a href ="Foredeckmain.php" >Retour</button> </a>
</Center>
</div>
<div class="footer">
<p>
<font color="white"> Foredeck Consulting Ltd © 2017 </font>
</p>
</div>
</BODY>
</HTML>
Вы широко открыты для [SQL Injections] (http://php.net/manual/en/security.database.sql-injection.php) и должны действительно использовать [Подготовленные утверждения] (http: // php .net/manual/en/mysqli.quickstart.prepared-statements.php) вместо того, чтобы конкатенировать ваши запросы. Специально, поскольку вы вообще не избегаете пользовательских входов! –
У вас не может быть одинакового идентификатора на ваших флажках. Идентификаторы в HTML должны быть уникальными для каждого документа/элемента. http://www.w3schools.com/tags/att_global_id.asp –
Даже если я изменил имя, это не работает –