Обработчик данных перед отправкой серверу (PHP)
Добавлено:
Вс янв 21, 2007 22:48
Darken
В общем есть форма поиска:
- Код: Выделить всё
{* 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> <input type="image" border=0 src="images/search.gif"> </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
Добавлено:
Пн янв 22, 2007 13:46
Darken
хм... что никто не знает как? просмотров смотрю много, а советов ни одного.
Добавлено:
Пн янв 22, 2007 15:16
Muerto
Извини, пропусти эту тему как то.
- Код: Выделить всё
function replace() {
val=document.getElementById('тут ИД поля').value;
if (val != undefined and val != "") {
val=val.split ("-");
val=val.join;
document.getElementById('тут ИД поля').value = val;
}
}
Сунь в событие онСабмит в форме. Только инпуту ИД надо дать, чтобы скрипт мог её найти и заменить значение. Скрипт не проверял, но, вроде, должен работать.
Добавлено:
Пн янв 22, 2007 17:43
Darken
в общем чувствую себя вообще дауном, уже голова плавится, имеем
форма поиска
- Код: Выделить всё
{* 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> <input type="image" border=0 src="images/search.gif"> </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 );
}
?>
извиняюсь что длинно, можно поподробнее где и что подправить
Добавлено:
Пн янв 22, 2007 18:57
Muerto
Скрипт в голову страницы с поиском. Если поиск на всех, то во все.
- Код: Выделить всё
<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()">
Добавлено:
Пн янв 22, 2007 20:59
Darken
Спасибо интересная штука получилась
Для примера попробуйте поискать номера
5-1-306-S04-N01
51306-S04-N01
51306S04-N01
51306----
при нажатии на кнопку "Поиск" выдает ненужное сообщение, как его убрать?
если вместо кнопки нажать "Enter" вообще ничего не находит, как это убрать?
Добавлено:
Вт янв 23, 2007 8:58
Darken
Muerto писал(а):На кнопку-картинку вешаем событие:
- Код: Выделить всё
<input type="image" border=0 src="images/search.gif" onClick="replacer()">
повешал не на кнопку, а на онСабмит формы, работает номально, и при нажатии "Enter" большое спасибо за помошь.
Но как убрать это выскакивающее окошко я никак не пойму, может для этого какой-то определенный параметр нужен?
Ну не рублю я в JS
Добавлено:
Вт янв 23, 2007 10:55
Muerto
alert(val); убери в скрипте. Я всегда забываю проверку снести.
Добавлено:
Вт янв 23, 2007 12:14
Darken
спасибо, все замечательно работает
Добавлено:
Сб фев 03, 2007 15:50
kost
Лучше PHP вырезать "-". Проще и надежнее.
Добавлено:
Сб фев 03, 2007 18:41
Muerto
2kost: Надёжней? Проще? Да чем же, господи! Особено порадывало - "надёжней", типа ЖабаСкрипт через раз вырезает. Людей, которые отключают ЖабаСкрипт я во внимание не беру поскольку понять их не могу в принципе и, честно сказать, ни одного ещё е видел. И, наконец, написать решение на РНР и ПОСЛЕ этого сказать - было бы гораздо правильней. И потом, тема была "Обработчик данных перед отправкой серверу (PHP)".
P.-S. Хайда и иже с тобой! Когда будет оапределён смайлик определяющий неадекватное состояние? Уже полгода прошу!
Добавлено:
Вс фев 04, 2007 22:52
Padonak
чо тут за хрень не понимаю апчом базар