2011-10-20 5 views
3

MySQL 데이터베이스의 테이블에서 드롭 다운 메뉴가 채워져 있습니다. 이 함수는 작동하지만 조건에 따라 드롭 다운의 기본값을 변경하려면 if/else 문을 코드에 추가하고 싶습니다. 다음 (여기까지 점점 자신의 도움을 AlienWebguy에 많은 감사)에 드롭 다운에 대한 코드입니다 : 내가 난 후 무엇을 달성하기 위해 몇 가지를 시도했습니다PHP if/else 문이 원하는 결과를 생성하지 않습니다.

<?php 
    $sql="SELECT techID, tech_userlogin FROM technicians"; 
    $result=mysql_query($sql); 

    while ($row=mysql_fetch_array($result)) 
    { 
     $techID = $row['techID']; 
     $tech_userlogin=$row['tech_userlogin']; 

     // Here - check if the $_GET value in the query matches the tech_userlogin 
     ($selected = ($tech_userlogin == $_GET['wtech_userlogin']) ? 'selected="selected"' : ''); 
     echo '<option value="' . $tech_userlogin . '" ' . $selected . '>' . $tech_userlogin . '</option>' . "\n"; 
    } 
?> 

은,하지만 난 심각 해요 내 경험 부족 및/또는 PHP/MySQL 전문 지식을 방해합니다.

나는 이것들을 시도한 것은 이번이 처음이며, 지금까지 그리워하고 있습니다. 스택 오버플로 (Stack Overflow)에서 도움을 얻었습니다. 그런 리소스가 존재한다고 생각합니다.

이것이 나의 최신 노력이며, 내가 한 일을 성취하지 못한다. if 문에서 조건이 충족되지 않으면 드롭 다운의 기본값을 "- 기술자 선택"으로 지정합니다.

<?php 
    $sql="SELECT techID, tech_userlogin FROM technicians"; 
    $result=mysql_query($sql); 

    $options=""; 

    while ($row=mysql_fetch_array($result)) 
    { 
     $techID = $row['techID']; 
     $tech=$row['tech_userlogin']; 
     $options.="<option value=\"$tech\">$tech</option>"; 

     // Here - check if the $_GET value in the query matches the tech_userlogin 
     if 
     ($selected = ($tech == $_GET['wtech_userlogin']) ? 'selected="selected"' : '') 
     {echo '<option value="' . $tech . '" ' . $selected . '>' . $tech . '</option>' . "\n";} 

     else 
     {echo '<option value="' . $options . '" . 'selected="selected"'>'--Select Tech--'<. $options .>' . "\n";} 
    } 
?> 

누군가 나를 도와 주거나 올바른 방향으로 나를 가리킬 수 있습니까? 많은 감사합니다.

($selected = ($tech == $_GET['wtech_userlogin']) ? 'selected="selected"' : '') 

변경이로 :

($selected = ($tech == $_GET['wtech_userlogin']) ? 'selected="selected"' : false) 

공지 사항을

건배

+1

왜 아래 표를 보냅니 까? 이 질문에 무슨 문제가 있습니까 ?? – Iznogood

답변

1

<select name="whatever"> 
    <option value="">-- Select Technician --</option> 
    <?php while ($row = mysql_fetch_array($result)) : 
     $techId = $row['techID']; // why isn't this used? 
     $tech = htmlspecialchars($row['tech_userlogin']); 
     $selected = $row['tech_userlogin'] == $_GET['wtech_userlogin'] ? '" selected="selected' : ''; 
    ?> 
    <option value="<?php echo $tech, $selected ?>"><?php echo $tech ?></option> 
    <?php endwhile ?> 
</select> 
+0

고맙습니다 !! 정확히 내가 원했던 것입니다. 나는 그것을 테스트했으며 완벽하게 작동합니다. 당신의 대답은 직접적이고 간결했습니다. 나는 항상 존경합니다. 사용되지 않은 $ techID는 이전 반복에서 그대로 남겨두고 제거했습니다. 저는 58 세이고 PHP/MySQL 경험이 8 주 정도 있습니다. 내가 가진 한 멀리까지 얻을 수 있었던 것은 당신 같은 사람들의 도움을받습니다. 좋은 나중에 친구! 건배 – Spud

-1

당신은 당신이 원하는 일을하지 않는이 쓴 시도 '거짓'. 빈 따옴표가 false가 아니기 때문에 PHP가 'true'로 간주해야합니다.

+0

'selected' 속성을위한 문자열을 만들고 있습니다. 빈 문자열이 정확합니다.그 조건의 결과가 부정확 한 경우 – Phil

+0

다음에 선택한 변수를 얻은 후 수행하십시오. if ($ selected == '') {// do stuff} else {// other stuff} – donutdan4114

+1

빈 문자열이 맞습니다. PHP에서는 사실이 아닙니다. try''('') echo '빈 문자열이 참' ' – grossvogel

-1

내가 틀릴 수도 있지만 if 문과 함께 문제가 있다고 생각합니다. 당신은이 :

($selected = ($tech == $_GET['wtech_userlogin']) ? 'selected="selected"' : '') 

문제는 당신이 항상 성공적인 과제에 대한 진정한를 반환합니다 선택한 변수 $에 원 문의 결과를 할당하는 것입니다.

+0

이것은. 기본적으로 "이 변수에 값을 할당 한 다음 무언가를 수행하는 경우"라고 지정하고 있습니다. 할당 한 값이 false 인 경우에도 해당 문은 false를 반환하지 않습니다. –

+1

그렇지 않습니다. 할당은 할당 된 값을 반환합니다. https://gist.github.com/1300229 – grossvogel

+0

나는 고치다. –

0

전체가 if/then이 기본값을 만들면 너무 복잡해집니다.

$options = '<option value="">--Select Tech--</option>'; 
while ($row=mysql_fetch_array($result)) 
{ 
    $techID = $row['techID']; 
    $tech = $row['tech_userlogin']; 
    $selected = ($tech == $_GET['wtech_userlogin']) ? 'selected="selected"' : ''; 
    $options .= '<option value="' . $techID . '" ' . $selected . '>' . $tech . '</option>' . "\n"; 
} 

이제 $options 먼저 보여주고, 다른 아무것도 selected가없는 경우, 따라서 선택 밖으로 시작 것 (빈 값 --select Tech--) 기본 옵션을 포함하여 그 안에 옵션의 모든있다 속성.

귀하의 옵션 값에 $tech도 있었으므로, 귀하는 $techID을 의미한다고 가정합니다.

+0

응답 해 주셔서 감사합니다. 나는 그것을 작동시킬 수 없다. $ techID는 이전 반복에서 남겨 두었습니다. 나는 그것을 제거했습니다. 여기 내가 가지고있는 것이 있는데, 나는 그것이 내가 어디에서 왔는지 말할 수 있기를 바랍니다. - Tech-'을 선택하십시오. while ($ row = mysql_fetch_array ($ result)) { \t $ tech = $ row [ 'tech_userlogin']; \t $ = ($ tech == $ _GET [ 'wtech_userlogin'])? 'selected = "selected"': ''; \t $ options. = ''. "\엔"; } ?> 건배 – Spud

관련 문제