Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Флажок+выпадающий список (http://forum.oszone.net/showthread.php?t=234530)

cibin 12-05-2012 22:14 1914810

Флажок+выпадающий список
 
Идея токая нужно поставить форму флажок так что бы было условие: если поставили галочку то применяется выпадающий список для скрипта применяемый формой. Дело в том что выподающих списокв будет несколько и надо создать условие выбора клиента, он может выбрать все а может только несколько! Пока вот что получается

PHP код:

<input name="viborka" type="checkbox" value="1"/>
    <strong>статус договора</strong></td>
    <td><select name="status_id" id="status_id">
      
      <?php
    
require_once "zashita.php";
    require_once 
"bdconnect.php";
    
mysql_query("SET NAMES cp1251");
                
$sSQL_tar="SELECT * FROM status ORDER by id_status ASC";
                
$result_tar=mysql_query($sSQL_tar$link);
                
                if (
mysql_num_rows($result_tar) == 0)  echo"Результат запроса : 0";else
           if (
mysql_num_rows($result_tar) > 0
                 while ( 
$row_tar mysql_fetch_array($result_tar) ):
                
?>
            <option value="<?php echo $status_id=$row_tar["id_status"];?>"><?php echo $row_tar["status_name"];?></option>
            <?php endwhile ;
            
            
            
?>
      
    </select>

Мне нужно как то впихнуть сюда условие установки фложка, я понимаю что это будет выглядеть типа так:
PHP код:

<input name="viborka" type="checkbox" value="1"/>
    <?php
    
if (viporka=1)
    {
        
    
?>
    <strong>статус договора</strong></td>
    <td><select name="status_id" id="status_id">
      
      <?php
    
require_once "zashita.php";
    require_once 
"bdconnect.php";
    
mysql_query("SET NAMES cp1251");
                
$sSQL_tar="SELECT * FROM status ORDER by id_status ASC";
                
$result_tar=mysql_query($sSQL_tar$link);
                
                if (
mysql_num_rows($result_tar) == 0)  echo"Результат запроса : 0";else
           if (
mysql_num_rows($result_tar) > 0
                 while ( 
$row_tar mysql_fetch_array($result_tar) ):
                
?>
            <option value="<?php echo $status_id=$row_tar["id_status"];?>"><?php echo $row_tar["status_name"];?></option>
            <?php endwhile ;
            
            
            
?>
      
    </select>
    <?php
    
}
    
?>

Я понимаю что это не правильно дело вот в чём как в флажке указать истинно и ложно, так что бы применить в условии. У меня есть ощущение что я не правильно написал условие!

Sham 13-05-2012 06:25 1914942

Если флажок не стоит, то viborka не шлётся (переменная будет не определена).

cibin 13-05-2012 08:55 1914958

Это был вопрос? да вы правильно меня поняли!

cibin 13-05-2012 09:29 1914967

Т.е. мне как то надо определить что галочка это 1, а отсутствие это 0! Но вот как!?

cibin 13-05-2012 13:49 1915069

суть в том что если галочку не ставит значит переменная $status_id не шлётся!

Sham 13-05-2012 21:47 1915343

Зачем флажок, сделайте <option value="">не выбрано</option> для каждого селекта. Тогда будет пустая переменная. Читайте про empty(), isset() на php.net.

cibin 08-06-2012 17:41 1930792

Надо мне как то дотукать как лучше сделать так что бы клиент мог выбирать по нескольким типам выборки выпадающего списка с учётом того что может выбрать любой из форм выпадающего списка и при этом из 7 форм ему нужно не все а только несколько и нам не известно что он выберет!?
Если учитывать что каждый выпадающий список это отдельная таблица можно ли сделать без возможности выбора в виде галочек или что ли бо подобное, если нет то как лучше реализовать, так что бы было максимально удобно!




P.S. Надо было начинать изучать Delphi, теперь уже поздно!

Та же проблема обстоит и здесь http://forum.oszone.net/thread-234428.html

cibin 11-06-2012 09:19 1932133

Цитата:

Цитата Sham
Читайте про empty(), isset() на php.net. »

Я как то попытался использовать isset() в случаи с универсальным поиском http://forum.oszone.net/thread-234428.html но не получилось.

Теоретически я так понял что нужно сделать типа так
PHP код:

if (isset($_GET[status_id])) {$status_id $_GET['status_id'];} 

Т.е. это строка я так понял проверяет пустое ли значение $status_id.
По идеи дальше должно быть так что если не пустое то например переменная $t определяем текстом "and dogovor.status_id='$status_id'" дальше в селекте пишем:
PHP код:

SELECT FROM `dogovor`WHERE $t 

1) Я правильно понимаю?
2) Я ни как не могу вспомнить как определить переменную как определённый текст?! стыдно но забыл!

Habetdin 11-06-2012 09:58 1932146

cibin, isset - проверяет, задана ли переменная, а empty - пустая ли она.
Цитата:

Цитата cibin
SELECT***FROM*`dogovor`WHERE*and dogovor.status_id='$status_id'»

Не забудьте профильтровать $status_id, если это - цифра, то intval(), если текст - mysql_real_escape_string() (не забыв про замечания, указанные на php.net), итп :)
PHP код:

if (isset($_GET[status_id]))
$status_id intval($_GET['status_id']);
else
$status_id 0

Цитата:

Цитата cibin
как определить переменную как определённый текст? »

Если вам нужно определить переменную как строку, то:
PHP код:

settype($var"string"); 


cibin 12-06-2012 21:51 1933104

Цитата:

Цитата Sham
Зачем флажок, сделайте <option value="">не выбрано</option> для каждого селекта. Тогда будет пустая переменная. Читайте про empty(), isset() на php.net. »

Очень умно придумано, самое смешное не сразу понял что вы придумали. По идеи получается что выбрав вариант "не выбрано" в sql запрос должен пойти пустое значение поиска. Там вступает проверка
PHP код:

if (isset($_GET[status_id]))
$status_id intval($_GET['status_id']); 

Дальше вступает скрипт запроса, т.е. выборка по типу id_status = ' '

Я правильно понял?

Если до попробовав то что посоветовали не сработало!

Моя идея заключалась в том что обозначить какую ни будь переменную (например $tt) как текст типа
PHP код:

"and dogovor.status_id='$status_id'" 

в результате у нас получиться токая картина, что
1) вписываем данную переменную в sql скрипт выборки после WHERE
2) с перва идёт проверка на пустое значение, если пустое то скрипт запроса выполняет без данного значение поиска и он в результате должен выдать всю таблицу, в противном случаи он подставляет строку
PHP код:

"and dogovor.status_id='$status_id'" 

с значение в место $status_id то значение которое выбрали!

Разве нельзя подобное в php создать? Вся загвоздка в том что
1) я не знаю как правильно вписать в sql скрипт переменную $tt
2) не знаю как в php сказать что $tt = "and dogovor.status_id='$status_id'"

Мне эту идею подкинул программист Си, вот и подумали почему так нельзя и если можно то как синтаксически правильно написать так что бы он работал???? Если здесь разберусь то думаю смогу понять как сделать так что бы заработал и универсальный поиск http://forum.oszone.net/thread-234428.html

Если кто сможет помочь буду оооооочень сильно благодарен!

cibin 21-06-2012 17:18 1938302

Вложений: 1
Я скоро лопну или с ума сойду, может кто ни будь подсказать как заставить работать эти 2 файла (смотрите вложение)?? Не ужели это не возможно??

Если убрать условие проверки
PHP код:

if (isset($_GET[status_id])) $status_id intval($_GET['status_id']); else $status_id 0;
if (isset(
$_GET[vid_oplati_id])) $vid_oplati_id intval($_GET['vid_oplati_id']); else $vid_oplati_id 0;
if (isset(
$_GET[vid_billinga_id])) $vid_billinga_id intval($_GET['vid_billinga_id']); else $vid_billinga_id 0;
if (isset(
$_GET[sposob_peredachi_id])) $sposob_peredachi_id intval($_GET['sposob_peredachi_id']); else $sposob_peredachi_id 0;
if (isset(
$_GET[periodichnost_id])) $periodichnost_id intval($_GET['periodichnost_id']); else $periodichnost_id 0;
if (isset(
$_GET[sposob_oplati_id])) $sposob_oplati_id intval($_GET['sposob_oplati_id']); else $sposob_oplati_id 0;
if (isset(
$_GET[bank_id])) $bank_id intval($_GET['bank_id']); else $bank_id 0

И в выпадающем список выбрать по всем 7 пунктам те по которым я знаю будет результат, он показывает запись. В случаи когда выбираешь пустые отказывается. При присутсвии в скрипте условие проверки он ни как не находит!

cibin 21-06-2012 17:18 1938303

И то я подозреваю что я не правильно написал условие проверки!

Сам алгаритм у меня в голове крутить, но как это грамотно в скрипте отразить!?

Sham 22-06-2012 01:39 1938523

Цитата:

Цитата cibin
$_GET[status_id] »

Цитата:

Цитата cibin
$_GET['status_id'] »

читайте на php.net про константы и строки.

cibin 22-06-2012 09:20 1938595

Ладно хотя бы конкретную ссылку можете дать которая мне точно поможет!?


Время: 14:29.

Время: 14:29.
© OSzone.net 2001-