2017-02-13 11 views
-1

Итак, я сделал опрос, единственная проблема, которая у меня есть, заключается в том, что я получаю в два раза больше значения комментария. Дело в том, что я хочу: для каждого вопроса получить значение переключателя и значение комментария. Любая помощь или советы приветствуются.Не получать значение радио кнопки 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 &copy; 2017 </font> 
      </p> 
     </div> 
    </BODY> 
</HTML> 
+0

Вы широко открыты для [SQL Injections] (http://php.net/manual/en/security.database.sql-injection.php) и должны действительно использовать [Подготовленные утверждения] (http: // php .net/manual/en/mysqli.quickstart.prepared-statements.php) вместо того, чтобы конкатенировать ваши запросы. Специально, поскольку вы вообще не избегаете пользовательских входов! –

+0

У вас не может быть одинакового идентификатора на ваших флажках. Идентификаторы в HTML должны быть уникальными для каждого документа/элемента. http://www.w3schools.com/tags/att_global_id.asp –

+0

Даже если я изменил имя, это не работает –

ответ

0

Использование класса вместо этого идентификатор для определения радиолюбителей и перед первым, если вы должны получить значение кнопки10:

$bouton10 = $_POST["bouton10"]; 
+0

Проблема в том, что имена всех входов (включая текстовую область) имеют одно и то же имя. Кроме того, вы не получаете имя класса в массиве post, поэтому это никак не повлияет на результат. –