2

このフォーラムの初心者で、php でコーディングを始めたばかりです。助けが要る。次のコードがあります

<?php error_reporting(-1);

require_once('/mysql/sql_connect.php');

$q = "SELECT pty.pty_profile_name AS profile FROM pty, users WHERE users.username = 'testaccount' ";
    $r = @mysqli_query ($dbc, $q);

    $results_array = array();
    while($row = mysqli_fetch_assoc($r)) {
        array_push($results_array, $row);
    echo "<pre>"; print_r($results_array); echo "</pre>"; }

?>

<p>
<form method="post" action="foreach2.php">
<label for="Property Select" class="title">Select Property</label>  
   <select name="pty_select" > 
   <?php foreach($results_array as $key => $value){ ?>
                    <option value="<?php echo $key; ?>"><?php echo $value['profile']; ?></option> 
    <?php } ?>
        </select>
    <input type="submit" name="Submit" />
</form>

<?php 

if (isset($_POST['Submit'])) {
echo "<pre>"; echo ($_POST['pty_select']); echo "</pre>"; } ?> 

得られる出力は正しいのですが、フォームで選択した内容に基づいて、0、1、2 などのキーが表示されます。値の出力が必要です。たとえば0 = Emerton、 の代わりに「0」を出力しますEmerton

$value['profile']の代わりにエコーするとpty_select、常にクエリの最後の結果が得られます。この例では2になります。これAmbarvaleは、クエリの最後の行出力を選択するだけだと思います。

理解できたと思います。前もって感謝します。

4

5 に答える 5

4

これを使用$key する際にオプションが必要であるかのようにオプションの値を割り当てたため、明らかにキーがエコーされます。$_POST['pty_select']

 <select name="pty_select" > 
<?php foreach($results_array as $key => $value){ ?>
                <option value="<?php echo $value['profile'];?>"><?php echo $value['profile'];     ?></option> 
<?php } ?>
    </select>
于 2013-04-16T10:13:20.830 に答える
3

つまり、表示に使用した値が必要です。次に、次のように変更します。

<option value="<?php echo $value['profile']; ?>">
    <?php echo $value['profile']; ?>
</option> 
于 2013-04-16T10:12:51.110 に答える
1

与える

<option value="<?php echo $value['profile']; ?>"><?php echo $value['profile']; ?></option> 

それ以外の

<option value="<?php echo $key; ?>"><?php echo $value['profile']; ?></option> 
于 2013-04-16T10:12:25.990 に答える
0
if (isset($_POST['Submit'])) {
echo "<pre>"; echo ($_POST['pty_select']); echo "</pre>"; } ?> 

次のようなものに変更します

if(isset($_POST['Submit'])) {
    echo $results_array[$_POST['pty_select']]['profile'];
}

または、代わりにプロファイル オプション値を使用します。

于 2013-04-16T10:14:48.643 に答える