2016-10-20 2 views
-1

두 가지 유형의 조회 필드가 포함 된 양식의 input.php 파일이 있습니다. 하나는 일련의 <option> 태그 ($ grade_1)로 채워지고 다른 필드는 데이터베이스의 열 ($ role_1)로 채워집니다. 두 lookup 필드는 모두 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

안녕이다. 미안하지만 무슨 뜻인지 알지 못해. 가치 = ''를 다른 것으로 대체해야합니까? – user3138025

+0

업데이트 : value = ''를 value = '$ row2 [0]'으로 바꿨습니다. 이제 사용자가 선택한 값의 첫 번째 문자 만 가져옵니다. 한 문자 위치 만 전달하는 것 같습니다. 예를 들어 16 자의 변수를 전달하기 위해 이것을 변경할 수있는 방법이 있습니까? – user3138025

+0

다른 업데이트 : value = ''를 value = $ row2 [0]으로 바꾸는 것이 트릭을 만들었습니다. 나는 ISSET을 잘못 코딩했고 그것은 나를 버렸다. ISSET 행을 $ role1의 간단한 ECHO로 바꾸면 전체 문자열이 표시됩니다. – user3138025

관련 문제