2017-08-03 14 views
2

myデータベーステーブルに保存される同じ名前の3つの選択オプションが割り当てられています。私のコードは最初はうまくいきましたが、今はうまく動作していません。今すぐ最後の選択オプションパネルに割り当てられた値だけを保存します。私は助けが必要です同じフォームの同じ名前の異なる選択オプションから1つの値を取得する方法

<?php 
    if(isset($_POST['submit'])){ 
     $vic_title  = $_POST['vic_title']; 
     $vic_name  = $_POST['vic_name']; 
     echo $vic_name; 
     if($vic_name=='') 
      echo "<font color='Green'><b>Please fill in the discription the accused name THANKS!!</b></font>"; 
     else 
      $insert = "INSERT INTO discips(vic_title, vic_name) 
         values('$vic_title','$vic_name')"; 

     $run = mysql_query($insert); 
     if ($run) { 
      echo "<font color='Green'><b>the incident was added</b></font>"; 
      # code... 
     } 
     else{ 
      echo "<font color='red'><b>the incident was not added</b></font>"; 
     } 
    } 
?> 

私が使用した私の形式です。

<form name="harvets" id="form" action="?pg=<?php echo $_GET[pg]."&lodge_inc"."&hv=$token"; ?>" method="post" enctype="multipart/form-data"> 
     <input type="hidden" name="id" value="<?php echo $edit_ca;?>"> 
     <center style="padding-top: 2%; margin-top: 3%;"><h3>Enter Incident Informtion</h3></center> 
     <table width="100%" class="m_aligned"> 

      <tr> 
       <td align="right" style="width: 100%;">Victim *</td> 
       <td align="left" style="width: 100%;"> 
        <select style="width: 100%;" id="victim" name="vic_title" class="sect" placeholder="Select a Role"> 
         <option></option> 
         <option value="staff">Staff</option> 
         <option value="student">Student</option> 
         <option value="visitor">Vistor</option> 
        </select> 
       </td> 
      </tr> 

      <tr id="staff_name" style="display: none;"> 
       <td align="right" style="width: 100%;">Staff Name : </td> 
       <td align="left" style="width: 100%;"> 
        <select style="width: 100%;" name="vic_name" class="sect" placeholder="Staff's Name"> 
         <?php 
          $get_staf = "select * from useraccounts"; 
          $run_staf = mysql_query($get_staf); 
          while ($row = mysql_fetch_array($run_staf)) { 
           $staf_id = $row['username']; 
           $staf_name = $row['name']; 
           echo "<option value='$staf_id'>". $staf_name ."</option>"; 
           # code... 
          } 
         ?> 
        </select> 
       </td> 
      </tr> 
      <tr id="vis_name" style="display: none;"> 
       <td align="right" style="width: 100%;">Visitor Name : </td> 
       <td align="left" style="width: 100%;"><input type="text" name="vic_name" placeholder="Visitor's Name"></td> 
      </tr> 
      <tr id="stud_name" style="display: none;"> 
       <td align="right" style="width: 100%;">Student Name: </td> 
       <td align="left" style="width: 100%;"> 
        <select style="width: 100%;" class="sect" name="vic_name" placeholder="Student's Name" cols="9"> 
         <option></option> 
         <?php 
          $get_stud= "SELECT * FROM studentdetails"; 
          $run_stud = mysql_query($get_stud); 
          while ($row = mysql_fetch_array($run_stud)) { 
          $stud_id = $row['id']; 
          $stud_fname = $row['fname']; 
          $stud_lname = $row['lname']; 
          echo "<option value='$stud_id'>". $stud_fname ." ". $stud_lname ."</option>"; 
          # code... 
         } ?> 
        </select> 
       </td> 
      </tr> 

SAVE

ここで私はJavaScript

<script type="text/javascript"> 
    $("#victim").change(function (ev){ 
     if($(this).val()=='visitor') $("#vis_name").css("display", "table-row") 
     else $("#vis_name").css("display", "none") 

     if($(this).val()=='student') $("#stud_name").css("display", "table-row") 
      else $("#stud_name").css("display", "none") 
     if($(this).val()=='staff') $("#staff_name").css("display", "table-row") 
       else $("#staff_name").css("display", "none") 
    }); 
</script> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".sect").select2({ 
     allowClear: true 
     }); 
</script> 

答えて

0

は、与えられた名前が正しい動作です使用して(選択または何か)最後のフィールドの値が取得されます。フォームを送信するときに複数の値を送信する場合は、フィールドに異なる名前を付ける必要があります。

なぜ同じ名前を付けたいのか自分に尋ねます。どうやってそれらを手に入れますか?私が3つの異なる入力を作成した場合、それらの3つを「タイトル」と名前を付けて入力した後にフォームを送信すると、$_POST['title']にアクセスするとどうなりますか?もっと問題があります.3つの入力のうち最初の入力の値を取得するにはどうすればよいですか?どのように私は知っているだろう、これらは異なる目的を持つ同一の要素です!

異なる要素を設計する場合は、それらの要素に異なる機能を指定するか、または異なる要素はありません。彼らはお互いを上書きしてくれるので、あなたは最後のものしか持てません。

あなたが本当に、彼らが同じ名前持っている。このような名前の最後にフックを追加する必要がある場合:

name="vic_name[]

このフィールドの値は$_POST['vic_name']に追加されます。この値は配列になるため、複数の値を含むことがあります。 それが唯一の方法です。

+0

したかったセクションを移動しました。私は名前= 'vic_name []'を追加しようとしました。それは動作していません。 –

+0

時々、私たちが望むものは不可能です。 – ksjohn

+0

私たちが余分に行くなら、その可能性はありません。私はAjaxを使用してそれを解決し、私はそれが動作するように働いていました。しかし、私はあなたの助けのボスに感謝しなければならない。 –

0

私はこの問題を解決しました。 AJAXを使用して2つのファイルを作成して、あるコード行を置き換える別のファイルを作成しました。ときどき何かが欲しいかもしれないし、どこかで失敗するかもしれませんが、深く焦点を当てるとコードを解決できます。

私は私のJavasrciptが

<script type="text/javascript"> 
    $("#victim").change(function() { 
     var cat = $(this).val(); 
     $.ajax({ 
      type: "GET" 
      , url: "student/fetch_victim.php" 
      , data: "n=" + Math.random() + "&vr=" + cat 
      , beforeSend: function() { 
       $("#ctg").html("<img src='imgs/loader.gif' />...loading") 
      } 
      , success: function (response) { 
       $("#tryme").html(response) 
      } 
     }); 
    }); 
</script> 

でファイルを交換し、私はその方法のようにしたい他のファイル

<?php 
require "../ht.php"; $hom = new ht; 
    if($_GET['vr']){ 
     $q = $_GET['vr']; 

     if($q =='staff'){ 
      echo " 
       <td align='right' style='width: 100%;'>Staff Name : </td> 
       <td align='left' style='width: 100%;'> 
        <select name='vic_name' class='sect' style='width: 100%;' value='<?php echo $edit[2] ?>' placeholder='Staff's Name'>"; 
          $staf = mysql_query("SELECT * FROM useraccounts"); $w=mysql_error(); 
          while ($row = mysql_fetch_array($staf)) { 
           echo "<option value='$row[0]'>". $row[1] ."</option>"; 
           # code... 
          } 
        echo "</select> 
       </td> 
      "; 
     }elseif ($q == 'student') { 
      echo " 
       <td align='right' style='width: 100%;'>Student Name: </td> 
       <td align='left' style='width: 100%;'> 
        <select style='width: 100%;' class='sect' name='vic_name' value='".$edit[2] ."' placeholder='Student's Name' cols='9'> 
         <option></option>"; 
         $stud= mysql_query("SELECT * FROM studentdetails"); 
         while ($row = mysql_fetch_array($stud)) { 
          echo "<option value='$row[31]'>". $row[0] .' '. $row[1] ."</option>"; 
          # code... 
         } 
        echo "</select> 
       </td> 
      "; 
     }else{ 
      echo " 
       <td align='right' style='width: 100%;'>Visitor Name : </td> 
       <td align='left' style='width: 100%;'><input style='width: 100%;' type='text' name='vic_name' value='".$edit[2] ."'placeholder='Visitor's Name'></td> 
      "; 
     } 

    } 
?> 
<script type="text/javascript">(function($){ 
    var code = $('.html-container').html(); 
    $('.html-viewer').text(code); 
})(jQuery);</script> 
関連する問題