Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Checkbox
 
 автор: natsuho   (29.03.2010 в 09:41)   письмо автору
 
 

Добрый день!!

Помогите решить следующую задачу:

Есть БД(karta) в ней есть таблица(dannie) с полями ФИО, дата рождения, пол, гражданство, паспортные даннные и т.д.

Необходимо выполнить отчет в котором бы содержались поля из таблицы выбранные с помощью checkbox'ов.

query.php

<script type="text/javascript">
function checkAll(oForm, cbName, checked)
{
for (var i=0; i < oForm[cbName].length; i++) oForm[cbName][i].checked = checked;
}
</script>
<tr><td><input type="checkbox" name="total" value="checkbox" onClick="checkAll(this.form,'vibor',this.checked)">Отметить все<br></tr></td>
<tr><td><input type="checkbox" name="vibor" value="familia">Фамилия</tr></td>
<tr><td><input type="checkbox" name="vibor" value="name">Имя</tr></td>
<tr><td><input type="checkbox" name="vibor" value="otchestvo">Отчество</tr></td>
<tr><td><input type="checkbox" name="vibor" value="data">Дата рождения</tr></td>
<tr><td><input type="checkbox" name="vibor" value="mestorozh">Место рождения</tr></td>
<tr><td><input type="checkbox" name="vibor" value="document">Документ</tr></td>
<tr><td><input type="checkbox" name="vibor" value="seria">Серия</tr></td>
<tr><td><input type="checkbox" name="vibor" value="number">Номер</tr></td>
<tr><td><input type="checkbox" name="vibor" value="kem">Кем</tr></td>
<tr><td><input type="checkbox" name="vibor" value="kogda">Когда</tr></td>
<tr><td><input type="checkbox" name="vibor" value="grazhdan">Гражданство</tr></td>
<tr><td><input type="checkbox" name="vibor" value="pol">Пол</tr></td>
</table>


Результат нужно вывести в виде таблицы с колонками выбранными с помощью чекбоксов

  Ответить  
 
 автор: serenya1983   (29.03.2010 в 13:10)   письмо автору
 
   для: natsuho   (29.03.2010 в 09:41)
 

может например, вот так:
$q="SELECT ";


//если был выбран checkbox familia то добавляем его для вывода данных из таблицы
if (isset($_POST["familia"])) $q.="and familia,"; (поле familia таблицы table_name)
if (isset($_POST["name"])) $q.="and name,";
...
//если создать массив с именами переменных и именами полей таблицы и пройти по массиву
//сейчас в конец $q запятая которую надо убрать

$q.=" FROM table_name where ....";
$res=mysql_query($q);
//вывод результата

  Ответить  
 
 автор: natsuho   (29.03.2010 в 14:10)   письмо автору
 
   для: serenya1983   (29.03.2010 в 13:10)
 

ничего не вывело..=((

echo $res; ничего не показал

Переменная $_GET["familia"]) не передается..потому что echo $q; выдает SELECT FROM dannie.

  Ответить  
 
 автор: Balamut182   (29.03.2010 в 14:21)   письмо автору
 
   для: natsuho   (29.03.2010 в 14:10)
 

чекбоксы вида
<input type="checkbox" name="vibor[document]">

не прокатит?
а потом будет массив
 $_POST['vibor']

который после обработки можно собрать в строку
$sql_ins = implode(",",  $_POST['vibor']);

и запихнуть в запрос
"SELECT ".$sql_ins." FROM dannie"

возможно проще брать из базы все поля звездочкой, а фильтровать только вывод?

  Ответить  
 
 автор: natsuho   (29.03.2010 в 14:27)   письмо автору
 
   для: Balamut182   (29.03.2010 в 14:21)
 

а можно по подробнее, а то я новичок во всем этом

  Ответить  
 
 автор: Balamut182   (29.03.2010 в 14:43)   письмо автору
 
   для: natsuho   (29.03.2010 в 14:27)
 

хз, как то так
<table>
<?php
$res 
mysql_fetch_assocmysql_query"SELECT * FROM table"$Link_id ) );
$count count$res );
for( 
$i 0$i $count$i++ ) {
    
?>
<tr>
<?php
    
foreach( $res[$i] as $key => $val ) {
        if( 
in_array$keyarray_keys($_POST['vibor'] )) ) {
            
?>
        <td><?=$val;?></td>
    <?php
        
}
    }
    
?>
</tr>
<?php
}
?>

  Ответить  
 
 автор: natsuho   (29.03.2010 в 15:12)   письмо автору
 
   для: Balamut182   (29.03.2010 в 14:43)
 

Balamut182,

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
$res = mysql_fetch_assoc( mysql_query( "SELECT * FROM table", $Link_id ) ); 


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
$res = mysql_fetch_assoc( mysql_query( "SELECT * FROM table", $Link_id ) ); 


Warning: Invalid argument supplied for foreach()
    foreach( $res[$i] as $key => $val ) { 


И еще name какой писать??

Я уже запуталась(

  Ответить  
 
 автор: Лена   (29.03.2010 в 14:33)   письмо автору
 
   для: natsuho   (29.03.2010 в 09:41)
 

Надо всем чебоксам давать разные имена.
<input type="checkbox" name="vibor"...
<input type="checkbox" name="nomer"....

  Ответить  
 
 автор: neadekvat   (29.03.2010 в 14:51)   письмо автору
 
   для: Лена   (29.03.2010 в 14:33)
 

и value="1" ставить, а то они в On приходят - не айс, по-моему =)

А в имя можно массивы choice[] - так еще проще работать.

  Ответить  
 
 автор: Лена   (29.03.2010 в 14:57)   письмо автору
 
   для: neadekvat   (29.03.2010 в 14:51)
 

В value нужно пихать данные, которые нужно получить не сервере, чаще всего это id элемента. Или да, 1, если в базе есть дополнительное поле, которое меняет свое состояние в зависимости от выбранного чекбокса.

>А в имя можно массивы choice[] - так еще проще работать.
Ну автор же нигде не указал, что ему на выходе нужно один массив получить :)

  Ответить  
 
 автор: neadekvat   (29.03.2010 в 15:10)   письмо автору
 
   для: Лена   (29.03.2010 в 14:57)
 

Автор не знает, как решить задачу, а добавив к уже имеющемуся у него коду в имена [] (при этом оставив значения value) задачу решить проще намного, мне кажется

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования