2014-12-06 3 views
-1

각 쿼리 결과에 대해 라디오 버튼을 만드는 데 문제가 있습니다. 반환 된 각 줄마다 2 개의 라디오 버튼으로 구성된 추가 열을 갖고 싶습니다. 사용자는이 2 개의 버튼 중 1 개만 선택할 수 있어야합니다. 지금 나는 라디오 버튼 열을 가지고 있지만 사용자는 각 라디오 버튼 중 하나만 선택할 수 있으며 각 결과에 대해 1 개가 아닙니다. 나는 그것이 의미가 있기를 바랍니다.쿼리 결과의 각 행에 라디오 버튼이 있습니다.

라디오 버튼을 사용해야합니까? 또는 확인란을 사용해야합니까? 웹 브라우저들은 모두 (ALL 레코드의 홈 또는 어웨이) 같은 질문에 대답 가정보다는 홈 또는 어웨이 일련의 질문 (위해되도록

<!DOCTYPE html> 
<html> 
<head> 
<title>games</title> 
</head> 
<body> 
<form method="POST" action="<?= $_SERVER['PHP_SELF'] ?>"> 
<select name="weekNo"> 
<option value="1">week 1</option> 
<option value="2">week 2</option> 
<option value="3">week 3</option> 
<option value="4">week 4</option> 
<option value="5">week 5</option> 
<option value="6">week 6</option> 
<option value="7">week 7</option> 
<option value="8">week 8</option> 
<option value="9">week 9</option> 
<option value="10">week 10</option> 
<option value="11">week 11</option> 
<option value="12">week 12</option> 
<option value="13">week 13</option> 
<option value="14">week 14</option> 
</select> 
<input type="submit" name="submit" value="Get Games" /> 
</form> 
<br> 
<hr> 
<?php 

$conn = 
or die('Could not connect: ' . pg_last_error()); 
if(isset($_POST['submit'])) //submit button pressed 
{ 
$query=NULL; //prevent compile error 

$weekNum = $_POST['weekNo']; 

    $query = "SELECT a.game_no AS game_number, a.home AS home_team, 
      homeTeam.wins AS home_wins, homeTeam.losses AS home_losses, 
      a.away AS away_team, awayTeam.wins AS away_wins, 
      awayTeam.losses AS away_losses, a.spread AS spread 
      FROM weekly_stats AS a 
      INNER JOIN team AS homeTeam ON a.home = homeTeam.name 
      INNER JOIN team AS awayTeam ON a.away = awayTeam.name 
      WHERE a.week_no = $weekNum"; 
$result = pg_query($query) or die ('Query failed: ' .pg_last_error()); 

    $query2 = "SELECT week_no, game_no FROM weekly_stats"; 
    $result2 = pg_query($query2) or die ('Query failed: ' . pg_last_error()); 

// Printing results in HTML 
echo "<br>There are " . pg_num_rows($result) . " records found.\n<p></p>\n"; 
echo "<table border=1>\n\t<tr>\n"; 

for($i=0; $i<pg_num_fields($result); $i++) 
{ 
echo "\t\t<th>" . pg_field_name($result, $i) . "</th>\n"; 
} 
echo "\t\t<th>Picks</th>\n"; 

    echo "\t</tr>\n"; 

while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) 
{ 

    echo "\t<tr>\n"; 

    foreach ($line as $col_value) 
    { 
    echo "\t\t<td>$col_value</td>\n"; 
    } 

    echo "<td><input type=\"radio\" name=\"picks\" value=\"home\">Home 
    <input type=\"radio\" name=\"picks\" value=\"away\">Away</td>"; 


echo "\t</tr>\n"; 
} 

echo "</table>\n"; 
// Free resultset 
pg_free_result($result); 
} 
// Closing connection 
pg_close($conn); 

?> 
</body> 
</html> 
+2

. 'name = \ "은 [{$ col_value}] \"를 선택합니다. '{$ col_value} '가 될 수 있습니다. – Sean

답변

0

입력 이름은 라디오 버튼의 모든에서 동일 각 레코드). 각 행의 각 라디오 버튼 쌍의 이름을 구별해야합니다.

$row=0; 
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) 
{ 
    echo "\t<tr>\n"; 

    foreach ($line as $col_value) 
    { 
     echo "\t\t<td>$col_value</td>\n"; 
    } 

    echo "<td>" 
     ."<label>Home <input type='radio' name='picks[$row]' value='home'></label>" 
     ."<label>Away <input type='radio' name='picks[$row]' value='away'></label>" 
     ."</td>"; 

    echo "\t</tr>\n"; 
    $row++; 
} 

서버 측에서는 전송을 배열로 해석합니다. 위의 $ row 변수는 필자가 시연 한 카운터가 아니라 각 행의 고유 인덱스 또는 ID가 될 수 있습니다.

+0

할 수있을 때 감사 원이 대답을 수락합니다. 그것을 설명해 주셔서 감사합니다. – jimmy

+0

질문이 하나 더 있습니다. @jasonCG. 어쨌든이 라디오 버튼으로 단어를 통합 할 수 있습니까? 첫 번째 버튼의 경우, 나는 그들에게 HOME과 그 다음을 말해 주길 바란다. 하지만 어떻게해야할지 모르겠다. – jimmy

+0

"for"속성과 함께 label 태그를 사용하는 것이 좋습니다. 내 대답을 예제로 업데이트하겠습니다. – JasonCG

0

같은 이름의 라디오 버튼은 동시에 선택할 수 없습니다. 각 쿼리의 라디오 단추에는 고유 한 이름이 있어야하지만 동일한 쿼리의 두 단추에 대한 이름은 같은 이름이어야합니다.

코드

는로 수정해야합니다 : - 당신은 즉, 배열 이름을 생성하여 수행 할 수있는 행마다 고유 한 이름을 만들 필요가

echo "<td><input type=\"radio\" name=\"picks[$row_number]\" value=\"home\">Home <input type=\"radio\" name=\"picks[$row_number]\" value=\"away\">Away</td>";

+0

오, 당신은 이미 꽤 빨리 반응을 얻었다 !! –

관련 문제