2011-03-20 5 views
0

입력 필드가 3자인 간단한 입력 양식이 있습니다. 그러나이 필드들에 초점을 맞추기 위해서는 필자는 필드 왼쪽, 즉 약 1 픽셀 또는 커서 너비만큼 매우 왼쪽을 클릭해야합니다. 양식은 Firefox 및 Safari에서 잘 작동합니다. Firefox 및 Safari에서는 텍스트 입력 필드의 아무 곳이나 클릭하여 집중할 수 있습니다.IE- 텍스트 입력 필드 "클릭 가능"영역의 너비는 1 픽셀입니다.

형태 :

function player_list($gameID) 
////////////////////////////////////////////// 
// Creates player list for specified  // 
// game. Provides input for game results. // 
////////////////////////////////////////////// 
{ 
    //*****Get list of players for gameID***** 
    $sql = "SELECT rsvpid,rsvp.playerid,concat(fname,' ',lname) as playerName,place,points,freeChamp FROM rsvp LEFT JOIN players ON rsvp.playerid=players.id WHERE rsvp.gameID=$gameID ORDER BY place,lname"; 
    $playerlist = mysql_query($sql); 

    if ($listrow = mysql_fetch_array($playerlist)) 
    { 
     #--Get number of players who signed up on the website. This may differ from the actual player count --# 
     #--entered by the host. A player may have played but not be signed up on the website.    --# 
     echo "<input type=hidden name='recordedPlayerCount' value='".mysql_num_rows($playerlist)."'>"; 
     $i = 0;  // index for form rows  
     do 
     { 
      foreach($listrow as $key=>$value) $$key = $value; 
      ($freeChamp) ? $freeChampChecked = "checked" : $freeChampChecked = ""; //check the freechamp box if appropriate. 
      if ($place==100) $place=""; 
?> 
      <tr> 
       <td><?=$playerName?>:</td> 
       <td style="text-align:center"><input type=text size="2" name="place<?=$i?>" value="<?=$place?>"></td> 
       <td style="text-align:center"><input type=checkbox name="freeChamp<?=$i?>" value='true' <?=$freeChampChecked?>></td> 
       <td style="text-align:center"><input type=checkbox name="noShow<?=$i?>" value='true'></td> 
       <input type=hidden name="rsvpid<?=$i?>" value="<?=$rsvpid?>"> 
      </tr> 
<? 
      $i++; //increment index for next row 
     }while ($listrow = mysql_fetch_array($playerlist)); 
    }else 
     echo "<tr><td colspan='4'>NO RECORDS FOUND FOR THIS GAME!</td></tr>"; 
} 
?> 

기분을 상하게하는 양식 필드가 ... 그것은 단지에 클릭은 "장소"필드입니다 :

<form name=game_edit method=post action="?includepage=game_results.php&gameID=<?=$gameID?>" onsubmit="return validate_form();"> 
<table border="0" id=gameResults> 
<tr><th colspan="4">RESULTS FOR: <?=$gamedate?> HOSTED BY <?=$hostName?></th></tr> 
<tr> 
    <td colspan="2">PLAYERS: <input type=text name=playercount value="<?=$playercount?>" size="3"></td> 
    <td colspan="2">Championship money colleted: $<?=$champamount?></td> 
</tr> 
<tr><th>PLAYER</th><th>Place</th><th>Champ Discount</th><th>Didn't play</th></tr> 
<? Player_list($gameID); ?> 
<tr><td colspan="2"><input type="text" name="manualAdd" size="17" /></td><td colspan="2">Add a username who didn't RSVP</td></tr> 
<input type=hidden name=gameID value="<?=$gameID?>"> 
<tr> 
    <td colspan="2"><input type=submit name='saveGameResults' value='SAVE CHANGES' style='width:100px;font-size:11px;'></td> 
    <td colspan="2" align="right"><input type=submit name='saveGameResults' value='LOCK GAME' style='width:100px;font-size:11px;'></td> 
</tr> 
</table> 

필드를 작성 기능 양식 필드의 왼쪽, IE의 전체 양식 필드 대신. (내가 알고있는 IE 7).

도움 말? 나는이 주사를 2로 범인 입력 요소의 크기를 설정하고 있음을 내기 알려 기꺼이

답변

0

그것은 더 나은 작동하는 경우 :

<td style="text-align:center"><input type=text size="3" maxlength="2" name="place<?=$i?>" value="<?=$place?>"></td> 

이 다른 일을하는 I 귀하의 코드에있는 통지 :

<tr><th>PLAYER</th><th>Place</th><th>Champ 
Discount</th><th>Didn't play</th></tr> 
<? Player_list($gameID); ?> 

"Player_list()"기능을 호출했지만 귀하의 함수 이름은 "player_list()"입니다. 팁, 마이클

extract($listrow); 
+0

최대 길이에 기쁨이 없습니다. 심지어 너비가 기본값 인 10 자 정도 였으므로 크기 제한 기가 완전히 제거되었습니다. 여전히 왼쪽의 한 픽셀을 클릭해야했습니다. 함수 이름을 잘 잡아 ... 함수가 여전히 흥미 롭다는 사실에 흥미 롭습니다. 나는 PHP가 그런 것들을 위해 대소 문자를 구분한다고 생각했다. extract() 팁은 foreach()보다 조금 깔끔합니다. – Chris

+0

흠. 그때는 꽤 이상합니다. 요소의 동작에 영향을 줄 수있는 외부 CSS 또는 Javascript가 사용 되었습니까? 일반적으로 이러한로드 블록을 실행하면 내 마크 업에서 가장 좋은 결정을 내리고 있는지 여부를 생각합니다. 테이블이 아닌 다른 것을 시도하는 것이 합리적일까요? 양식을 간소화하면 (즉, 입력 요소를 제외한 다른 모든 마크 업을 제거하면) 제대로 작동합니까? 때때로 사물이 단순화 될 때 무엇이 ​​잘못되었는지가 더욱 분명해진다. –

+0

솔루션을 게시했습니다 ... IE가 단지 tard 일지 궁금합니다. 당신의 도움을 주셔서 감사합니다. – Chris

0

감사 :

foreach($listrow as $key=>$value) $$key = $value; 

은 동일합니다. 문제를 찾았습니다. 나는 콘텐츠 div의 위에 떨어지는 머리글 div에 CSS로 구동되는 수평 드롭 다운 메뉴 (http://www.udm4.com/)가있다. 그 위에, 나는 헤더 div 위에 드롭 다운 할 수있는 자바 스크립트 기반의 로그인 패널을 가지고있다. z- 인덱스를 가지고 놀아서 모든 것이 잘 돌아 간다면, 폼을 보유하고있는 콘텐츠 div를 z- 인덱스 -1로 설정했습니다. 하나의 div와 하나의 형식을 제외한 모든 것을 꺼낸 후에도 IE는 음수의 z- 인덱스를 좋아하지 않습니다. 부정 Z- 색인이 유효한 CSS를 구성하는지 IE가 단지 다시 tard인지 또는 다른 브라우저가 너무 관대한지 여부는 알 수 없습니다.

관련 문제