-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変数からデータを見ることができないのはなぜ? これを見ていただきありがとうございます。
こんにちはです。申し訳ありませんが、私はあなたが意味するものを得ることはありません。私はvalue = ''を何か他のものに置き換えるべきですか? – user3138025
更新:value = ''をvalue = '$ row2 [0]'に置き換えたので、ユーザーが選択した値の最初の文字のみが取得されます。それは1文字の位置だけを通過しているようです。たとえば、16文字の変数を渡すためにこれを変更する方法はありますか? – user3138025
別のアップデート:value = ''をvalue = $ row2 [0]に置き換えると、そのトリックが行われました。私は間違ってISSETをコード化し、それは私を捨てていた。 ISSET行を$ role1の単純なECHOに置き換えたとき、完全な文字列が表示されました。 – user3138025