2016-10-20 3 views
-1

2つのタイプの参照フィールドを含むフォームのinput.phpファイルがあります。 1つは一連の<option>タグ($ grade_1)から読み込まれ、もう1つのフィールドはデータベース($ role_1)の列から読み込まれます。両方のルックアップフィールドはinput.php形式で正常に表示されます。 post.phpのデータベース入力($ role_1)に基づいてユーザーの選択を取得するのに問題があります。テストコードとしてISSETを使用して、$ role_1の数とデータを取得できるかどうかを確認しました。 Count($ nroles)をエコーすることはできますが、データ要素($ role_1)のエコーは表示されません。変数$ grade_1は正常に動作します。 ここで入力フォームの一部です:HTMLを取得するのに問題POST.PHPにデータを選択

<?php $link = new mysqli("localhost","USER","PASSWORD", "DATABASE"); 
    if (mysqli_connect_errno()) 
    { printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 
    if (!$link->set_charset("utf8")) 
    { printf("Error loading character set utf8: %s\n", $link->error); 
     exit(); 
    } 
    $role_sql = "SELECT role FROM lu_role"; 
    $role_result2 = mysqli_query($link, $role_sql) or die (mysqli_error($link)); 
    $options = ""; 
    while($row2 = mysqli_fetch_array($role_result2)) 
    { 
     $options = $options."<option value=''>$row2[0]</option>"; 
    } 
?> 
<form action="post.php" method="post"> 
    <table class="table_600_reg"> 
     <tr> 
     <td width="120"> 
     <select name="grade_1" style="background-color:#EFD381;"> 
      <option value="0">Choose Grade</option> 
      <option value="1">First</option> 
      <option value="2">Second</option> 
      <option value="3">Third</option> 
      <option value="4">Fourth</option> 
      <option value="5">Fifth</option> 
      <option value="6">Sixth</option> 
      <option value="7">Seventh</option> 
      <option value="8">Eighth</option> 
      </select> 
     </td> 
     <td width="200" align="left"> 
      <select name="role_1" style="background-color:#EFD381;"> 
       <?php echo $options;?> 
      </select>    
     </td> 
     </tr> 
    </table> 
</form> 

Post.PHPファイルからの抜粋です:

$link = new mysqli("localhost","USER","PASSWORD", "DATABASE"); 
    if (mysqli_connect_errno()) 
    { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 
//* change character set to utf8 */ 
//Print an error if utf8 can not be loaded 
if (!$link->set_charset("utf8")) 
{ 
    printf("Error loading character set utf8: %s\n", $link->error); 
    exit(); 
} 
$role_1 = mysqli_real_escape_string($link, $_POST[role_1]); 
$grade_1 = mysqli_real_escape_string($link, $_POST[grade_1]); 
if(!isset($role_1)) 
    { 
    echo("<p>You didn't select any role_1!</p>\n"); 
    } 
else 
    { 
    $nroles = count($role_1); 
    echo("<p>You selected $nroles roles: "); 
    for($i=0; $i < $nroles; $i++) 
    { 
     echo($role_1[$i] . " "); 
    } 
    echo("</p>"); 
    exit; 
    } 

私は$のROLE_1変数からデータを見ることができないのはなぜ? これを見ていただきありがとうございます。

答えて

1
$options = $options."<option value=''>$row2[0]</option>"; 

値は空の文字列

+0

こんにちはです。申し訳ありませんが、私はあなたが意味するものを得ることはありません。私はvalue = ''を何か他のものに置き換えるべきですか? – user3138025

+0

更新:value = ''をvalue = '$ row2 [0]'に置き換えたので、ユーザーが選択した値の最初の文字のみが取得されます。それは1文字の位置だけを通過しているようです。たとえば、16文字の変数を渡すためにこれを変更する方法はありますか? – user3138025

+0

別のアップデート:value = ''をvalue = $ row2 [0]に置き換えると、そのトリックが行われました。私は間違ってISSETをコード化し、それは私を捨てていた。 ISSET行を$ role1の単純なECHOに置き換えたとき、完全な文字列が表示されました。 – user3138025

関連する問題