Обработчик данных перед отправкой серверу (PHP)

Старый mweb

Модератор: [mweb team]

Обработчик данных перед отправкой серверу (PHP)

Сообщение Darken Вс янв 21, 2007 22:48

В общем есть форма поиска:
Код: Выделить всё
{* simple search form *}

<table cellspacing=0 cellpadding=1 border=0 width="170">

   <form action="index.php" method=get>


   {section name=i loop=$searchstrings}
      <input type=hidden name='search_string_{$smarty.section.i.index}'
         value="{$searchstrings[i]}">      
   {/section}


   <tr>
      <td>
         <font class=light>{$smarty.const.STRING_SEARCH}</font>
      </td>
      <td>
         <input type="text" name="searchstring" size=15
            value="{$searchstring|default:""}">
      </td>
      <td>
         <nobr>&nbsp;<input type="image" border=0 src="images/search.gif">&nbsp;</nobr>
      </td>
   </tr>

      
      {if $old_search_query ne ""}
         <input type=hidden name="oldproducts" value="{$old_search_query}">
      {/if}
      

   <tr>
      <td colspan=3>
         <input type="checkbox" name="inside"
            {if $search_in_results}checked{/if}>
               <font class=light>
                  {$smarty.const.STRING_SEARCH_IN_RESULTS}
               </font>
      </td>
   </tr>

   </form>

</table>



Надо дописать фунцию чтобы она выкидывала из поисковых запросов знаки "-", т.е. если пользователь вводит 51306-S04-N01, поисковик искал бы 51306S04N01
Пилите, Шура....
Аватара пользователя
Darken
Редко заходит
 
Сообщения: 153
Зарегистрирован: Пт фев 10, 2006 11:44
Откуда: Новосибирск

Сообщение Darken Пн янв 22, 2007 13:46

хм... что никто не знает как? просмотров смотрю много, а советов ни одного.
Пилите, Шура....
Аватара пользователя
Darken
Редко заходит
 
Сообщения: 153
Зарегистрирован: Пт фев 10, 2006 11:44
Откуда: Новосибирск

Сообщение Muerto Пн янв 22, 2007 15:16

Извини, пропусти эту тему как то.
Код: Выделить всё
function replace() {
val=document.getElementById('тут ИД поля').value;
        if (val != undefined and val != "") {
val=val.split ("-");
val=val.join;
document.getElementById('тут ИД поля').value  = val;
        }
}

Сунь в событие онСабмит в форме. Только инпуту ИД надо дать, чтобы скрипт мог её найти и заменить значение. Скрипт не проверял, но, вроде, должен работать.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Darken Пн янв 22, 2007 17:43

в общем чувствую себя вообще дауном, уже голова плавится, имеем

форма поиска
Код: Выделить всё
{* simple search form *}
<table cellspacing=0 cellpadding=1 border=0 width="170">
<form action="index.php" method=get onsubmit="replace">


   {section name=i loop=$searchstrings}
      <input type=hidden name='search_string_{$smarty.section.i.index}'
         value="{$searchstrings[i]}">      
   {/section}


   <tr>
      <td>
         <font class=light>{$smarty.const.STRING_SEARCH}</font>
      </td>
      <td>
         <input type="text" name="searchstring" size=15   value="{$searchstring|default:""}" id="oem">
      </td>
      <td>
         <nobr>&nbsp;<input type="image" border=0 src="images/search.gif">&nbsp;</nobr>
      </td>
   </tr>

      
      {if $old_search_query ne ""}
         <input type=hidden name="oldproducts" value="{$old_search_query}">
      {/if}
      

   <tr>
      <td colspan=3>
         <input type="checkbox" name="inside"
            {if $search_in_results}checked{/if}>
               <font class=light>
                  {$smarty.const.STRING_SEARCH_IN_RESULTS}
               </font>
      </td>
   </tr>

   </form>

</table>


функции поиска

Код: Выделить всё
<?php
   

   function schIsAllowProductsSearch( $categoryID )
   {
      $q = db_query("select allow_products_search from ".CATEGORIES_TABLE.
         " where categoryID=$categoryID");
      if ( $row = db_fetch_row($q) )
         return $row["allow_products_search"];
      return false;      
   }


   function schUnSetOptionsToSearch( $categoryID )
   {
      $q = db_query( "select optionID from ".CATEGORY_PRODUCT_OPTIONS_TABLE.
         " where categoryID=$categoryID " );
      $data = array();
      while( $row = db_fetch_row($q) )
         $data[] = $row["optionID"];

      foreach( $data as $val )
      {
         db_query( " delete from ".CATEGORY_PRODUCT_OPTION_VARIANTS.
            " where categoryID=$categoryID AND optionID=$val" );

         db_query( " delete from ".CATEGORY_PRODUCT_OPTIONS_TABLE.
            " where categoryID=$categoryID AND optionID=$val" );
      }
   }

   function schSetOptionToSearch( $categoryID, $optionID, $set_arbitrarily )
   {
      db_query( "insert into ".CATEGORY_PRODUCT_OPTIONS_TABLE.
            " ( categoryID, optionID, set_arbitrarily ) ".
            " values( $categoryID, $optionID, $set_arbitrarily ) " );
   }

   function schOptionIsSetToSearch( $categoryID, $optionID )
   {
      $res = array();
      $q = db_query( "select set_arbitrarily from ".CATEGORY_PRODUCT_OPTIONS_TABLE.
            " where categoryID=$categoryID AND optionID=$optionID" );
      if ( $row = db_fetch_row($q) )
      {
         $res["isSet"] = 1;
         $res["set_arbitrarily"] = $row["set_arbitrarily"];
      }
      else
         $res["isSet"] = 0;
      return $res;
   }

   function schUnSetVariantsToSearch( $categoryID, $optionID )
   {
      db_query( " delete from ".CATEGORY_PRODUCT_OPTION_VARIANTS.
             " where categoryID=$categoryID AND optionID=$optionID" );
   }


   function schSetVariantToSearch( $categoryID, $optionID, $variantID )
   {
      db_query( "insert into ".CATEGORY_PRODUCT_OPTION_VARIANTS.
            " ( optionID, categoryID, variantID )  ".
            " values( $optionID, $categoryID, $variantID ) " );
   }   


   function schVariantIsSetToSearch( $categoryID, $optionID, $variantID )
   {
      $q = db_query( "select count(*) from ".
            CATEGORY_PRODUCT_OPTION_VARIANTS.
            " where categoryID=$categoryID AND optionID=$optionID AND ".
            "  variantID=$variantID " );
      $row = db_fetch_row($q);
      return ( $row[0] != 0 );
      
   }

?>


извиняюсь что длинно, можно поподробнее где и что подправить
Пилите, Шура....
Аватара пользователя
Darken
Редко заходит
 
Сообщения: 153
Зарегистрирован: Пт фев 10, 2006 11:44
Откуда: Новосибирск

Сообщение Muerto Пн янв 22, 2007 18:57

Скрипт в голову страницы с поиском. Если поиск на всех, то во все.
Код: Выделить всё
<script language="javascript" type="text/javascript">
function replacer() {
val=document.getElementById('oem').value;
valArray=val.split("-");
val=valArray.join("");
document.getElementById('oem').value=val;
alert(val);
}
</script>

На кнопку-картинку вешаем событие:
Код: Выделить всё
<input type="image" border=0 src="images/search.gif" onClick="replacer()">
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Darken Пн янв 22, 2007 20:59

Спасибо интересная штука получилась -09-
Для примера попробуйте поискать номера
5-1-306-S04-N01
51306-S04-N01
51306S04-N01
51306----

при нажатии на кнопку "Поиск" выдает ненужное сообщение, как его убрать?

если вместо кнопки нажать "Enter" вообще ничего не находит, как это убрать?
Пилите, Шура....
Аватара пользователя
Darken
Редко заходит
 
Сообщения: 153
Зарегистрирован: Пт фев 10, 2006 11:44
Откуда: Новосибирск

Сообщение Darken Вт янв 23, 2007 8:58

Muerto писал(а):На кнопку-картинку вешаем событие:
Код: Выделить всё
<input type="image" border=0 src="images/search.gif" onClick="replacer()">


повешал не на кнопку, а на онСабмит формы, работает номально, и при нажатии "Enter" большое спасибо за помошь.

Но как убрать это выскакивающее окошко я никак не пойму, может для этого какой-то определенный параметр нужен?
Ну не рублю я в JS
Пилите, Шура....
Аватара пользователя
Darken
Редко заходит
 
Сообщения: 153
Зарегистрирован: Пт фев 10, 2006 11:44
Откуда: Новосибирск

Сообщение Muerto Вт янв 23, 2007 10:55

alert(val); убери в скрипте. Я всегда забываю проверку снести.
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение Darken Вт янв 23, 2007 12:14

спасибо, все замечательно работает -18-
Пилите, Шура....
Аватара пользователя
Darken
Редко заходит
 
Сообщения: 153
Зарегистрирован: Пт фев 10, 2006 11:44
Откуда: Новосибирск

Сообщение kost Сб фев 03, 2007 15:50

Лучше PHP вырезать "-". Проще и надежнее.
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Сообщение Muerto Сб фев 03, 2007 18:41

2kost: Надёжней? Проще? Да чем же, господи! Особено порадывало - "надёжней", типа ЖабаСкрипт через раз вырезает. Людей, которые отключают ЖабаСкрипт я во внимание не беру поскольку понять их не могу в принципе и, честно сказать, ни одного ещё е видел. И, наконец, написать решение на РНР и ПОСЛЕ этого сказать - было бы гораздо правильней. И потом, тема была "Обработчик данных перед отправкой серверу (PHP)".
P.-S. Хайда и иже с тобой! Когда будет оапределён смайлик определяющий неадекватное состояние? Уже полгода прошу!
Nadie hablara de nosotras cuando hayamos muerto.
www.muerto.ru
Аватара пользователя
Muerto
Растаман
 
Сообщения: 3597
Зарегистрирован: Пн окт 11, 2004 19:09
Откуда: Москва

Сообщение kost Вс фев 04, 2007 22:03

Код: Выделить всё
$text = str_replace("-", "", $text);
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Сообщение Padonak Вс фев 04, 2007 22:52

чо тут за хрень не понимаю апчом базар -08-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

cron