Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

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

тема: почему select не работает ?
 
 автор: intima   (23.08.2011 в 16:18)   письмо автору
 
 

как сделать чтобы в базу заходили значения указанные в selecte ??

<label>Раздел </label></p>
                       <p>  <select type=text name="notice_type" class="text" id="notice_type" >
<option value='Сдаю' id="notice_type">Сдаю</option>
<option value='Продаю' id="notice_type">
Продаю</option>
<option value='Куплю' id="notice_type">
Куплю </option>
<option value='Сниму' id="notice_type">
Сниму</option>
<option value='Обменяю' id="notice_type">
Обменяю  </option>
<option value='Бартер' id="notice_type">
Бартер </option>
</select>

  Ответить  
 
 автор: cheops   (23.08.2011 в 16:26)   письмо автору
 
   для: intima   (23.08.2011 в 16:18)
 

А в чем выражается "не работа" тэга select?

PS Кстати, значение атрибута id должно быть уникально для каждого из тэгов, а у вас "notice_type" встречается в массовом порядке - могут быть проблемы при стилевом оформлении и использовании JavaScript.

  Ответить  
 
 автор: intima   (23.08.2011 в 21:31)   письмо автору
 
   для: cheops   (23.08.2011 в 16:26)
 

вот смотрите весь код
<? include ("db.inc")  ;
include (
"admin/core/common_lib.inc") ;
if(isset (
$_POST['cat'])) {$cat=$_POST['cat'];}
if(isset (
$_POST['id'])) {$id=$_POST['id'];}

//if(isset ($_POST['zag'])) {$id=$_POST['zag'];}
//if(isset ($_POST['name'])) {$id=$_POST['name'];}
//if(isset ($_POST['cena'])) {$id=$_POST['cena'];}
//if(isset ($_POST['id'])) {$id=$_POST['id'];}
//if(isset ($_POST['id'])) {$id=$_POST['id'];}
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru"><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link rel="stylesheet" type="text/css" href="styles/stayl.css"/>
<link rel="stylesheet" type="text/css" href="css/default.css"/>
<script type="text/javascript" src="http://wareznika-net.ru/js/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/validate.min.js"></script>
<script type="text/javascript" src="ajax.js"></script>

<script type="text/javascript" src="js/init.js"></script>

<script type="text/javascript" src="js/jquery.tools.min.js"></script>
<script type="text/javascript" src="js/js.js"></script>

<script>
// execute your scripts when the DOM is ready. this is a good habit
$(function() {

    // expose the form when it's clicked
    $("form.expose").click(function() {

        $(this).expose({

            // custom mask settings with CSS
            maskId: 'mask',

            // when exposing is done, change form's background color
            onLoad: function() {
                this.getExposed().css({backgroundColor: '#fff'});
            },

            // when "unexposed", return to original background color
            onClose: function() {
                this.getExposed().css({backgroundColor: null});
            },

            api: true

        }).load();
    });
});
</script>
<title>Документ без названия</title>
</head>
<body>
<div class="main">
 <div class="across">
  <div class="top">
  </div>
   <div class="centr">
  <? include ("bloks/header.php");?>
  <? include ("bloks/left.php");?>
<!--смена фото икон--> 
<script language="javascript">
function locateObject(name, d)
{
var i,x;
if(!d) d=document;

x=d[name];
for(i=0; !x && d.layers && i< d.layers.length; i++)
x=locateObject(name, d.layers[i].document);
return x;
}
function ImageSwap( Name, URL)
{
var img;
img = locateObject(Name);
img.src = URL;
}
</script>
<div class="div_icon"> 
  <div class="icon">
<a    href="nedv.php"  onMouseOut="ImageSwap('a1','icon/nedvigemost2.jpg')" onMouseOver="ImageSwap('a1','icon/nedvigemost.jpg')" onMouseDown="ImageSwap('a1','картинки при нажатии'')"> <img class="icon_a"  src="icon/nedvigemost2.jpg" alt="" width="165px" height="145px" name="a1" border=0 /></a> 
<a  href="#" onMouseOut="ImageSwap('a2','icon/avto.jpg')" onMouseOver="ImageSwap('a2','icon/avto2.jpg')" onMouseDown="ImageSwap('a2','картинки при нажатии'')" > <img class="icon_a"  src="icon/avto.jpg" alt="" width="165px" height="145px" name="a2" border=0 /></a> 
<a  href="#" onMouseOut="ImageSwap('a4','icon/техника.jpg')" onMouseOver="ImageSwap('a4','icon/texnika2.jpg')" onMouseDown="ImageSwap('a3','картинки при нажатии'')" > <img class="icon_a"  src="icon/техника.jpg" alt="" width="165px" height="145px"  name="a4" border=0/></a> 
<a  href="#" onMouseOut="ImageSwap('a3','icon/услуги.jpg')" onMouseOver="ImageSwap('a3','icon/yslugi3.jpg')" onMouseDown="ImageSwap('a3','картинки при нажатии'')"><img class="icon_a"  src="icon/услуги.jpg" alt="" width="165px" height="145px" name="a3" border=0/></a>
  </div>
  <div class="obhiy_rait"> 
    <div class="div_baner_left"> 
    </div>
  </div>
 <div class="pazdel_nedv" >
 <P class="centr_text_p">Панель
          <BR>
  <b class="centr_text_b">Добавления объявлений
  </b>
 </p>
  <div class="form">
   <div id="firstpane" class="serch_list">
     

<?
          $query 
"select id,name,parent from $tbCatalog where parent=-1 ORDER BY corder";
    if (
$result=mysql_query($query)){
        if (
mysql_num_rows($result)){
            
$catArray '';
            while (
$row mysql_fetch_array($result)){
               
$catArray[]= array('name'=>$row['name'],'id'=>$row['id']);
               
            }
        }
     }
     
$id=intval($catArray[0]['id']);
     
$query "select * from $tbCatalog where  parent=$id  ORDER BY corder";
     if (
$result=mysql_query($query)){
        if (
mysql_num_rows($result)){
            
$subcatArray '';
            while (
$row mysql_fetch_array($result)){
               
$subcatArray[] = array('name'=>$row['name'],'corder'=>$row['corder'],'id'=>$row['id'],'parent'=>$row['parent']);
               
            }
         }
      }
   
//Список переменных участвующих в операции
    
$name   '';
    
$zag    '';
    
$descr  '';
    
$text   '';
    
$cena '';
    
$contact_face ='';
    
$contact_infa ='';
    
$img      '';
    
$addimg_1 '';
    
$addimg_2 '';
    
$addimg_3 '';
    
$cid $subcatArray[0]['id'];
    
$error    '';
    
$add_notice false;//Булев задающий добавлено объявление или нет
    
    
if (!empty($_POST)){
        
$name        mysql_escape_string(getParam('name'''));
        
$zag mysql_escape_string(getParam('zag'''));
//        $descr       = '';
        
$text        mysql_escape_string(getParam('text'''));
        
$cena       = (int)mysql_escape_string(getParam('cena',''));
        
$city        mysql_escape_string(getParam('city',''));
        
$ploshmysql_escape_string(getParam('plosh',''));
        
$descrmysql_escape_string(getParam('descr',''));
        
$cid         mysql_escape_string(getParam('sub_category',$subcatArray[0]['id']));
      
//  $code        = generate_uniq_code('code', $tbNotice);
      //  $code_vip    = generate_uniq_code('code_vip', $tbNotice);
        
$datetime    date('Y-m-d H:i:s');

        if(
$_img uploadFile("./images/notice_img/""img")){
        
//echo $_img;
            
$img $_img;//getSafeFileName($_img);
        
}
        if(
$_addimg_1 uploadFile("./images/notice_img/""img2")){
            
$addimg_1 $_addimg_1;//getSafeFileName($_addimg_1);
        
}
        if(
$_addimg_2 uploadFile("./images/notice_img/""img3")){
            
$addimg_2 $_addimg_2;//getSafeFileName($_addimg_2);
        
}
       
// if($_addimg_3 = uploadFile("./images/notice_img/", "addimg_3")){
            
$addimg_3 $_addimg_3;//getSafeFileName($_addimg_3);
       // }
     
        //if ($descr==''){$error['descr']='Поле `краткое описание` не заполнено';}
      
if ($zag==''){$error['zag']='<br><b class="b_add"> Поле <b class="b_add_2">Заголовок объявления</b>  не заполнено </b>';}
      if (
$text==''){$error['text']='<br><b class="b_add"> Поле <b class="b_add_2">Текст объявления </b> не заполнено</b>';}       
       if (
$name==''){$error['name']='<br><b class="b_add"> Поле <b class="b_add_2">город</b> не заполнено </b>';}
        if (
$plosh==''){$error['plosh']='<br><b class="b_add"> Поле <b class="b_add_2">контактное лицо</b> не заполнено </b>';}
        if (
$descr==''){$error['descr']='<br><b class="b_add"> Поле <b class="b_add_2">контактная информация</b> не заполнено </b>';}
        
        if (
$error==''){
            
$query "INSERT INTO $tbProducts  (
                      `url`,
                      `text`,
                      `img`,
                      `parent`,
                      `datetime`,
                      `cena`,
                      `name`,
                      `plosh`,
                      `descr`,
                       `cid`,
                      `img2`,
                      `img3`
                     )
              VALUES (
                        '
$zag',
                        '
$text',
                        '
$img',
                        '-1'   ,
                        '
$datetime',
                        '
$cena',
                         '
$name',
                        '
$plosh',
                        '
$descr',
                        '
$cid',
                        '
$addimg_1',
                        '
$addimg_2'
                                      )"
;
                                      
            
$error['add']='<b class="b_add_2">Объявление не добавлено</b>';
            
            if (
$resultmysql_query($query)){
                if (
mysql_affected_rows()!=0){
                    
$id_add mysql_insert_id();
                    
$taip=substr($taip045);
                    
$url getTransName(trim($taip));
                    
$id mysql_insert_id();
                   
// $url = Get_Next_Uniq_URL("$url", $tbProducts, "url_men", "");
                    
$query "
                        UPDATE 
$tbProducts
                        SET `translit` = '
$url_table'
                        WHERE `id`=
$id_add
                    "
;
                    if (
$result mysql_query($query)){
                        if (
mysql_affected_rows()!=0){
                            
$error['add']='<br><b class="b_add_4">Объявление успешно добавлено</b>'.
                            
'<br><b class="b_add_5"><a href="viev_post.php?id='.$id.'">ссылка на объявление</a></b>';
                            
                            
$add_cat true;
                        }
                    }
                    
                }
            }
        }
    }
    
//Получение списка типа объявления
    
$sel_notice_type='';
    
$query "select taip from $tbProducts  ORDER BY corder";
    if (
$result=mysql_query($query)) {
        if (
mysql_num_rows($result)!=0) {
            while (
$row=mysql_fetch_assoc($result)){
                
$sel_notice_type.='<option value="'.$row['id'].'" '.($notice_type==$row['id'] ? 'selected=selected' '').'>'.$row['taip'].'</option>';
            }
        }
    }
            
?>
 <div id="contain">
        
              <div class="u">
           
                 
               
               <form ENCTYPE="multipart/form-data" id="form" class="blocks" name="add" method="post" action="add_cat.php">
                   <b class="b_add">Поле помеченное</b>  <b class="b_add_3">*</b> <b class="b_add">обязательно для заполнения</b>
                    <?php
                        
if ($error!=''){
                            foreach (
$error as $er){
                                
//if ($er!='Объявление успешно добавлено'){                //Если объявление отправленно,то не выводить сообщение,пока не будет введен код
                                    
echo '<span class="strict">'.$er.'</span>';
                                
//}
                            
}
                            if (
$add_notice){
                                    echo 
'<script>
                                          function dorefresh()
                                              {
                                                ti=setTimeout("dorefresh();",1000);
                                                window.location="activation/'
.$id_add.'";
                                              }
                                              window.onLoad=dorefresh();
                                          </script>'
;
                             }
                        }
                    
?>
                    <div class="div">
                     <p>    <select id="category" name="category" class="text" onchange="changeCat(this.form);">
                        <?php
                            $bool
=true;
                            foreach (
$catArray as $cat){
                            if (
$bool){  
                                    echo 
'<option value="'.$cat['id'].'" selected=selected>'.$cat['name'].'</option>';
                                    
$bool=false;
                                }else{
                                    echo 
'<option value="'.$cat['id'].'">'.$cat['name'].'</option>';
                                }
                            }
                        
?>
                        </select>
                        <label>Категория </label> </p>
                        <p> <span id="result">
                       <select id="sub_category" class="text" name="sub_category" >
                        <?php
                            $bool 
true;
                            
                            foreach (
$subcatArray as $subcat){
                            if (
$bool){ 
                                    echo 
'<option value="'.$subcat['id'].'" selected=selected>'.$subcat['name'].'</option>';
                                    
$bool =false;
                                }else{
                                    echo 
'<option value="'.$subcat['id'].'">'.$subcat['name'].'</option>';
                                }
                                
                            }
                        
?>
                        </select>
                        </span>
                         <label>Раздел </label></p>
                       <p>  <select type=text name="notice_type" class="text" id="notice_type" >
<option value='Сдаю' id="notice_type">Сдаю</option>
<option value='Продаю' id="notice_type">
Продаю</option>
<option value='Куплю' id="notice_type">
Куплю </option>
<option value='Сниму' id="notice_type">
Сниму</option>
<option value='Обменяю' id="notice_type">
Обменяю  </option>
<option value='Бартер' id="notice_type">
Бартер </option>


</select>   </p> 
                     
                         <p> <input type="text" class="text" name="zag" id="zag" value="<?php echo $zag?>"/><label> Заголовок объявления <b class="b_add_3">*</b></label>  </p>
                        <p>  <textarea id="text" class="textarea" name="text" ><?php echo $text?></textarea>  <label >Текст объявления <b class="b_add_3">*</b></label> </p>
                        <p>  <input type="text" class="text" id="cena" name="cena" value="<?php echo $cena?>" />  <label>Цена </label></p>                   <p> <input type="text" class="text" id="name" name="name" value="<?php echo $name?>" />  <label>Город (населенный пункт) <b class="b_add_3">*</b></label></p>
                        <p>  <input type="text" class="text" id="plosh" name="plosh" value="<?php echo $plosh?>"/>  <label>Контактное лицо <b class="b_add_3">*</b></label></p>
                         <p> <input class="text" id="descr" name="descr" ><?php echo $descr?></textarea>  <label >Контактная информация (телефон, адрес, e-mail, icq) <b class="b_add_3">*</b></label> </p>
                        <p><input type="file" class="text" id="img" name="img"/>  <label>Фотография 1&nbsp;&nbsp;</label> </p>
                       <p> <input type="file" class="text" id="img2" name="img2"/>  <label>Фотография 2&nbsp;&nbsp;</label> </p>
                       <p> <input type="file" class="text" id="img3" name="img3"/>  <label>Фотография 3&nbsp;&nbsp;</label></p>
                    <p> <label>99554 <b class="b_add_3">*</b></label> <input height="15px" type="textch" class="textch" id="cph" name="cph" value="<?php echo $cph?>"/>  </p>
                    </div>
                    
                   
                    <input type="submit" value="Подать объявление" class="submit"  />
                  
                </form>
             
           </div>
      
      </div>
     </div>
  </div>
<div style="height:50px"></div>
 
  
 </div>
</div>
<? include ("bloks/bottom.php"); ?>
<div class="niz" >
</div>
</body>
</html>


там все работает не работает только эта часть !! можете как нибудь подсказать ?как это реализовать

  Ответить  
 
 автор: Den*s   (24.08.2011 в 10:00)   письмо автору
 
   для: intima   (23.08.2011 в 21:31)
 

Возможно из за того что в строчке
<select type=text name="notice_type" class="text" id="notice_type" >


есть параметр type=text
попробуйте его убрать

  Ответить  
 
 автор: intima   (24.08.2011 в 12:32)   письмо автору
 
   для: Den*s   (24.08.2011 в 10:00)
 

может там че то еше есть?

  Ответить  
 
 автор: Гость   (24.08.2011 в 12:52)   письмо автору
 
   для: intima   (24.08.2011 в 12:32)
 

Если бы вы ответили на вопрос "А в чем выражается "не работа" тэга select?", то вам помогли бы гораздо быстрее

  Ответить  
 
 автор: intima   (24.08.2011 в 13:52)   письмо автору
 
   для: Гость   (24.08.2011 в 12:52)
 

сам селект может и работает !! она должна добовлять категории в базу ну "Сдаю" ,"продаю" а она этого не делает после добавления объявления это поле остается пустым !! она не понимает что ее надо в базу занести слово сдаю или продаю в зависимости от что выбрано! как то так !!! короче она в этом селекте эту строчку не понимает!
<option value='Сдаю' id="notice_type">Сдаю</option>

  Ответить  
 
 автор: Den*s   (24.08.2011 в 16:07)   письмо автору
 
   для: intima   (24.08.2011 в 13:52)
 

Вам два вопроса
1) В какую переменную методом POST помещается значение селекста
2) Где в INSERT в поле прописана эта переменная?

что то типа

<?
$notice_type 
$_POST["notice_type"];

$query "INSERT INTO $tbProducts  (
                      `url`,
                      `text`,
....
notice_type
.... 
)
VALUES (
                        '
$zag',
                        '
$text',
...
$notice_type
...
)"
?>

  Ответить  
 
 автор: intima   (24.08.2011 в 17:13)   письмо автору
 
   для: Den*s   (24.08.2011 в 16:07)
 

этого мамента нету я думаю вы подскажите где что и как поставить !!! я просто новичек !! я делал обьявлял все как только не пробывал это сделать не получилось потом решил все убрать как было и у вас спросить!

  Ответить  
 
 автор: Lotanaen   (24.08.2011 в 17:17)   письмо автору
 
   для: intima   (24.08.2011 в 17:13)
 

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

  Ответить  
 
 автор: Den*s   (24.08.2011 в 18:04)   письмо автору
 
   для: intima   (24.08.2011 в 17:13)
 

Я так полагаю это не ваш код.
Уделите время и разберитесь, ничего сложного нет.
И так, форма у Вас уже есть, в форме указан параметр action="add_cat.php"
На странице add_cat.php принимаете данные формы, то есть если на форме есть

<input type="text" class="text" name="zag" id="zag" />

то на add_cat.php нужно написать:

<?
$zag 
= @trimmysql_real_escape_string (htmlspecialchars ($_POST["zag"], ENT_QUOTES))); 
?>

Всякого рода trim( mysql_real_escape_string (htmlspecialchars тут для того что бы обезопасить себя от зловредных символов
Потом сформировать строку запроса, в которой будет указано, в какую таблицу что писать
Не забудьте создать соответствующее поле в базе
Сделайте это своими руками снуля
Не знаю для чего там столько кода, на мой взгляд его можно укоротить и упростить раза в 3.

  Ответить  
 
 автор: Valick   (24.08.2011 в 18:25)   письмо автору
 
   для: Den*s   (24.08.2011 в 18:04)
 

htmlspecialchars - нужно использовать при выводе, а не перед помещением в базу

  Ответить  
 
 автор: Den*s   (24.08.2011 в 18:45)   письмо автору
 
   для: Valick   (24.08.2011 в 18:25)
 

А почему нельзя при вводе
вот например

<?
$t 
htmlspecialchars ("'"ENT_QUOTES);
 print 
$t;
?>

Нажимаю в браузере "просмотреть исходный код" и вижу &#039;
Отсюда вывод что в переменную $t записалась не одинарная кавычка, а безопасный набор символов
Эту переменную теперь без опасений можно вносить в базу
Разве не так? Или я что то не до конца понимаю?

  Ответить  
 
 автор: Valick   (24.08.2011 в 19:13)   письмо автору
 
   для: Den*s   (24.08.2011 в 18:45)
 

можно, но ведь вы не носите носки поверх ботинок, хотя тоже можно :)
для базы достаточно mysql_real_escape_string

SQL -инъекция, это не помещение в базу каких-то страшных символов...
базе вообще фиолетово что в ней лежит, инъекция заключается в искажении запроса посылаемого базе
а вот trim нужно применять одной из первых, для обработки переменной
затем неплохо бы проверить длину строки

  Ответить  
 
 автор: Den*s   (25.08.2011 в 09:58)   письмо автору
 
   для: Valick   (24.08.2011 в 19:13)
 

>можно, но ведь вы не носите носки поверх ботинок, хотя тоже можно :)
Можно надеть носки поверх ботинок и тогда не будешь скользить по льду :)

>SQL -инъекция, это не помещение в базу каких-то страшных символов...
>базе вообще фиолетово что в ней лежит, инъекция заключается в искажении запроса посылаемого базе

Это я и хотел учесть,можно исказить запрос кавычками, используя htmlspecialchars кавычки превращаются в символы, идёт в довес если не доверять mysql_real_escape_string

  Ответить  
 
 автор: (Sandr)   (24.08.2011 в 23:35)   письмо автору
 
   для: Den*s   (24.08.2011 в 18:45)
 

Можно писать как хочешь))
Просто если перед помещением в бд ты их профильтруешь, то это больше места в бд будет занимать вот и всё)
Но если фильтровать при выводе то нагрузка на сервер немного увеличится, на сколько я знаю.

  Ответить  
 
 автор: Valick   (24.08.2011 в 23:52)   письмо автору
 
   для: (Sandr)   (24.08.2011 в 23:35)
 

Можно писать как хочешь))
угу, но нужно писать как нужно :)
в базе нужно хранить оригинал, с которым можно проводить любые преобразования достав его из базы, в том числе и хтмлспешалчарс непосредственно перед выводом в браузер
ну а на сет нагрузки это не тот случай когда нужно экономить
___
да делайте как хотите, мне вообще по барабану))

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

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