2013-09-03 5 views
0

잘 편집 할 수있는 드롭 다운 메뉴가 있습니다.여러 개의 드롭 다운 메뉴를 편집하는 방법

 // Connect to Local Host 
     @ $db=mysqli_connect('localhost', 'root'); 
     if (!$db) { do_Warning(-1); exit; } 

    // Connect to Database 
     @ mysqli_select_db($db,'coshh'); 

echo '<tr><td>Harmful effects:</td> 
     <td><select name="Harmful_effects"><option></option>'; 

     /* Create SQL to extract effects options */ 
     $sql = "SELECT * FROM `lookup_harmful_to_reproductive_system` ORDER BY `id`"; 
     /* Perform SQL to get effects options */ 

     $result = mysqli_query($db, $sql); 

    /* Build dropdown list for each effects option found in result */ 
    while ($row=mysqli_fetch_array($result,MYSQLI_BOTH)) 
    { 
     echo '<OPTION value="'.$row['Harmful_effects'].'"'; 
     if ($Harmful_effects == $row['Harmful_effects']) 
     { 
     echo ' selected'; 
     } 
    echo '>'.$row['Harmful_effects'].'</OPTION>'; 
    } 
    echo '</select></select></td>'; 

그러나, 나는 여러 옵션으로 변경 내가했던 메뉴를 드롭 다운 물어 봤는데 내 MySQL 데이터베이스에 여러 옵션을 삽입합니다. 내가 만난 큰 문제는이 다중 드롭 다운 메뉴를 편집 할 때 데이터베이스에서 이전에 선택한/입력 된 데이터를 강조 표시하지 않는다는 것입니다. 나는 시작했으나 나는 그 주위를 두렵게하려고 정말 고심하고있다.

echo '<tr><td>Harmful effects:</td> 
    <td><select name="Harmful_effects[]" multiple="multiple" STYLE="width: 500px" size="0"><option></option>'; 

    /* Create SQL to extract effects options */ 
    $sql = "SELECT * FROM `lookup_harmful_to_reproductive_system` ORDER BY `id`"; 

    /* Perform SQL to get effects options */ 
    $result = mysqli_query($db, $sql); 

    /* Build dropdown list for each effects option found in result */ 
    while ($row=mysqli_fetch_array($result,MYSQLI_BOTH)) 
    { 
     echo '<OPTION value="'.$row['Harmful_effects'].'"'; 
    if ($Harmful_effects == $row['Harmful_effects']) 
    { 
     echo ' selected'; 
    } echo '>'.$row['Harmful_effects'].'</OPTION>'; 
    } echo '</select></select></td>'; 

어떤 제안이/도움을 많이 감사합니다!

+0

'@'을 사용하지 말고'@'을 사용하는 비용을 살펴보십시오 http://themessycode.blogspot.com/2013/08/cost-of-error-suppression-and-ignorance.html – DevZer0

+0

'$ Harmful_effects'의 값은 무엇입니까? 그리고 출력 된 HTML을 보여 주실 수 있습니까? –

+0

$ Harmful_effects 값을 얻는 지 확인하십시오. – nickle

답변

0

난 당신이 $Harmful_effects$row['Harmful_effects']와 함께 몇 가지 문제를 가지고 생각합니다. 데이터베이스와 어떻게 변수 $harmful_effects를 초기화 선택한 효과의 배열을 저장하는 방법에 따라 다르다

if (in_array($row['harmful_effects'], $harmful_effects) { 
    echo 'selected'; 
} 

: 아마 그것은 같은 더 뭔가를해야합니다.

+0

Benny - 나는 $ Harmful_effects를 $ Harmful_effects = implode (',', $ _ POST [ 'Harmful_effects'])에 넣기 위해 다음과 같이 사용했습니다. $ Harmful_effects = mysql_real_escape_string ($ Harmful_effects); –

+0

그렇다면 db에서 페치하여 배열을 되 찾을 때'explode (',', $ harmful_effects);를 사용하여 작업해야합니다. 그런 다음 모든 유해 영향을 포함하는 변수와 현재 행에 지정된 유해 영향을 포함하는 변수를 가져야합니다. 그 후 모든 유해한 효과를 반복 할 수 있고'if (in_array ($ currentHarmfulEffect, $ harmulEffectsOfRow) {...' – Benny

+0

감사합니다 베니. –

0

$Harmful_effects은 선택 컨트롤의 저장된 결과가 포함 된 배열이어야합니다. 다음 테스트를 사용하여 다중 선택을 수행 할 수 있습니다.

if (in_array($row['Harmful_effects'], $Harmful_effects)) {echo ' selected';} 
관련 문제