2010-03-18 4 views
2

내 업데이트 양식에서 이미 저장된 값을 호출하는 필드를 원합니다. 이것은 텍스트 필드에서 매우 간단하지만 drop down()에 대해 PHP가 이미 저장된 사용자 이름을 읽는 데 문제가 있습니다.MySQL에서 PHP로 SELECTED 옵션을 가져 오는 방법은 무엇입니까?

$sql = "SELECT users.user_id, users.name FROM users"; 
       $result = mysql_query($sql, $connection) 
       or die ("Couldn't perform query $sql <br />".mysql_error()); 
       $row = mysql_fetch_array($result);?> 

     <label>Designated Person:</label> <select name="name" id="name"> 

     <option value="<?php echo $row['user_id']?>" SELECTED><?php echo $row['name']?> - Current</option> 

     <?php  
       while($row = mysql_fetch_array($result)) 
     { ?>      <option value="<?php echo $row['user_id']; if (isset($_POST['user_id']));?>"><?php echo $row['fullname']?></option> 
     <?php } ?> 

이것의 결과는 모든 사용자를 표시합니다 (필요에 따라) 나 사용자가 다음 성공적으로 변경을 수행 선택할 수 있습니다 항상 ... 처음 그러나 '선정'입니다 : 여기 내 쿼리 및 코드는 내 데이터베이스에 하나 그리고 내 활동이 추가되었을 때 선택된 사용자는 절대 안된다. (!!!

답변

1

흠 ... 나는 마지막 옵션에 아무것도하지 않는 if 문이있다. .. 같은 선택 요소에 두 가지 다른 옵션을 선택해서는 안됩니다.

첫 번째 옵션은 else가 없으면 항상 선택되고 .... fo r에 XHTML, 당신은 $ 행 [ '전체 이름을'] 에코하려는 = "선택"대신 또한

을 선정하여 선택 사용하려고 노력하지만, 쿼리에 열 '이름'

<?php 
$sql = "SELECT users.user_id, users.name FROM users"; 
$result = mysql_query($sql, $connection) or die ("Couldn't perform query $sql <br/>".mysql_error()); 
$row = mysql_fetch_array($result); 
?> 

<label>Designated Person:</label> 

<select name="name" id="name"> 
    <option value="<?php echo $row['user_id']?>"><?php echo $row['name'] ?> - Current</option> 
<?php  
while($row = mysql_fetch_array($result)){ ?> 
    <option 
     value="<?php echo $row['user_id'] ?>" 
     <?php echo (isset($_POST['name']) && $_POST['name'] == $row['user_id']) ? ' selected="selected"' : '');?> 
><?php echo $row['name']?></option> 
<?php } ?> 
1

를 가져 오는 것은 무엇 당신 ' 현재 수행중인 작업은 다음과 같습니다.

  • 첫 번째 결과 행을 선택하고 SELECTED로 옵션으로 인쇄합니다.
  • 옵션을 출력하는 나머지 결과 행을 반복합니다. 당신은 현재 선택된 값을 어디서나 검사하지 않고 if()를 비 목적으로 사용합니다.
  • 현재 저장된 이름이있는 곳을 볼 수 없습니다.

보십시오이 ($curname을 가정 할 현재 선택된 이름) :

$sql = "SELECT users.user_id, users.name FROM users"; 
     $result = mysql_query($sql, $connection) 
     or die ("Couldn't perform query $sql <br />".mysql_error()); 
?> 

<label for="name">Designated Person:</label> 
    <select name="name" id="name"> 

<?php  
     while($row = mysql_fetch_array($result)) 
{ ?>       
    <option value="<?php echo $row['user_id'] ?>" <?php if ($curname == $row['name']) echo ' SELECTED'; ?>><?php echo $row['fullname']?></option> 
<?php } ?> 
0
  <?php 
       $result = mysql_query("select (row) from (table)"); 
       while($row = mysql_fetch_row($result)) 
       { 
        echo '<option value='.$row[0].'>'.$row[1].'</option>'; 
       } 
      ?> 
+0

당신은 옵션 태그로 묶거나 같은 것을 사용해야 할 것 [<= ""선택을 선택합니다>] 기타 – user2456293

관련 문제