2017-01-14 12 views
0

私はwhileループで次のコードを持っています。ここにhtmlのselectタグがあります。ループ中にPHPのhtmlオプションの値を選択する方法は?

または$status == 2の場合は、selectedのオプション値にします。それは常に$status == 2

ですが、唯一の1は私のmysqlデータベース内のデータをブロックがあるBlockedオプションを選択します。このループではActiveまたはBlocked

平均です。私はここで間違っていますか?

PHP Whileループ

$data = array(); 
$x = 1; 
while($row=mysqli_fetch_array($query)) { // preparing an array 
    $nestedData=array(); 

    $nestedData[] = $x; 
    $nestedData[] = $row["user_id"]; 
    $nestedData[] = $row["address"]; 
    $nestedData[] = $row["package_name"]; 

    $status  = $row['status']; 
    if($status == 1) { 
     $statusMsg = "selected = 'selected'"; 
    } elseif($status == 2){ 
     $statusMsg = "selected = 'selected'"; 
    } 

    $nestedData[] = " 
    <select class='form-control' name='status' id='changeStatus'> 
     <option value=''>--Select--</option> 
     <option value='1' $statusMsg>Active</option> 
     <option value='2' $statusMsg>Blocked</option> 
    </select>"; 

    $client_id = (int) $row['client_id']; 
    $nestedData[] = "<a class='btn btn-success btn-sm' href='{$site_url}toplevel/clients/update/$client_id'>Edit</a>&nbsp;<a href='#' data-toggle='modal' data-target='#myModal' class='btn btn-danger btn-sm' data-id='$client_id'>Delete</a>"; 

    $data[] = $nestedData; 

    $x++; 
} 

答えて

1

$statusMsg$row[status]は、次の2つの間を区別するために別の変数を追加する必要があり、1または2

ある場合にかかわらず、常に両方のタグにselected = 'selected'として出力されますタグを作成し、ループの開始時に両方の変数をクリアします。

$status  = $row['status']; 
$statusMsg1 = ""; 
$statusMsg2 = ""; 

if($status == 1) { 
    $statusMsg1 = "selected = 'selected'"; 
} elseif($status == 2){ 
    $statusMsg2 = "selected = 'selected'"; 
} 

$nestedData[] = " 
<select class='form-control' name='status'> 
    <option value=''>--Select--</option> 
    <option value='1' $statusMsg1>Active</option> 
    <option value='2' $statusMsg2>Blocked</option> 
</select>"; 
+0

OHはい、現在動作しています。ありがとう@モー。 –

+0

あなたは大歓迎です:) – Moe

関連する問題