2012-06-18 3 views
0

이 코드는 모든 테이블 필드를 가져 와서 체크 버튼을 연결하는 데 도움이되지만이 코드는 동일한 이름을 생성합니다. 즉, 모든 필드를 보여 주지만 같은 필드를 표시합니다. ... IDPHP 다중 체크 박스를 선택하십시오

내가 그들의 particulatr 이름이 필요가 ...

당신은 무엇이 잘못 참조하시기 바랍니다 수 있습니까?

감사합니다 ..

 <form action='report.php' method='post'> 

<?php // Script 12.7 - sopping.php 

$db = mysql_connect('localhost', 'root', ''); 
mysql_select_db('db_up', $db); 

echo "<table border='1' class='tabtext'>"; 

$result = mysql_query("SELECT * FROM hostess"); 
$numrows = mysql_num_rows($result); 
$numfields = mysql_num_fields($result); 

// show headers 
echo '<thead><tr>'; 
for ($field = 0; $field < $numfields; $field++) { 
    $field_name = mysql_field_name($result, $field); // instead of $i 
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>'; 
} 

echo '</tr></thead>'; 

echo '<tbody>'; 
for ($row = 0; $row < $numrows; $row++) { 
    $data = mysql_fetch_assoc($result); 
    echo '<tr>'; 
    for ($field = 0; $field < $numfields; $field++) { 
     $field_name = mysql_field_name($result, $field); 
     if (isset($_POST['checkbox'][$field_name])) { 
      echo '<td>' . $data[$field_name] . '</td>'; 
     } 
    } 
    echo '</tr>'; 
} 
echo '</tbody>'; 
echo '</table>'; 


?> 
<input type='submit' value='Submit' /> 
</form> 

답변

1

mysql_field_name 함수의 두 번째 인수가 정의되지는 그래서 PHP는 0을 의미 가정하고 첫 번째 필드 이름을 반환 확신합니다. 정의한 변수 ($ field)를 색인으로 사용하십시오.

은 다음과 같아야합니다 $i가 정의되어 있지 않기 때문에, 당신은 mysql_field_name을 사용하고 항상 (열 0) 당신을 위해 같은 이름을 반환

for ($field = 0; $field < $numfields; $field++) { 
    $field_name = mysql_field_name($result, $field); // instead of $i 
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>'; 
} 
+0

안녕하세요, 감사합니다. 이것은 분명했습니다. 감사합니다. 한 번 값을 선택하면 한 가지에 대해 도움을 요청할 수 있습니까? 어떻게 선택한 값만 표시 할 수 있습니까? 나는 내가 선택한 필드를 인쇄해야한다는 것을 의미한다. 정보는 그렇지 않다 .. – Landi

+0

당신은 이미 그렇게했지만, 내가 대답 한 것과 같은 문제가 그 코드 블록에있다. 문제를 해결하고이 스크립트에 양식을 올바르게 제출하면 승인 된 양식 만 표시됩니다. 다음과 같아야합니다 : for ($ field = 0; $ field <$ numfields; $ field ++) { $ field_name = mysql_field_name ($ result, $ field); // $ i가 아닌 경우 if (isset ($ _ POST [ 'checkbox'] [$ field_name])) { echo ''. $ data [$ field_name]. ''; } } – EmmanuelG

+0

그래서 report.php에이 코드를 넣어야합니다. – Landi

1

.

+0

업데이트 된 코드를 참조 할 수 있습니까? 선택한 필드 (예 : )에 따라 모든 테이블을 인쇄 할 수있게 도와 줄 수 있습니까? $ checkbox, $ checkbox2 등 선택 ... – Landi

관련 문제