-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 변수에서 데이터를 볼 수 다음은 입력 양식의 일부? 고마워요.
안녕이다. 미안하지만 무슨 뜻인지 알지 못해. 가치 = ''를 다른 것으로 대체해야합니까? – user3138025
업데이트 : value = ''를 value = '$ row2 [0]'으로 바꿨습니다. 이제 사용자가 선택한 값의 첫 번째 문자 만 가져옵니다. 한 문자 위치 만 전달하는 것 같습니다. 예를 들어 16 자의 변수를 전달하기 위해 이것을 변경할 수있는 방법이 있습니까? – user3138025
다른 업데이트 : value = ''를 value = $ row2 [0]으로 바꾸는 것이 트릭을 만들었습니다. 나는 ISSET을 잘못 코딩했고 그것은 나를 버렸다. ISSET 행을 $ role1의 간단한 ECHO로 바꾸면 전체 문자열이 표시됩니다. – user3138025