[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите с селект!!!
titovff
есть селект значения которого заполняются из БД
     <select name="city">
<?

$result = mysql_query("SELECT DISTINCT city FROM catalog ORDER BY city");
$myrow = mysql_fetch_array($result);
echo "<option>Все</option>";
echo "<option "; if ($city=="Все") {echo "selected";} echo " value='Все'>Все</option>";
do {
if ($myrow[city]!="") { echo "<option "; if ($myrow[city]==$city) {echo "selected";} echo" value='".$myrow[city]."'>".$myrow[city]."</option>"; }
}

while ($myrow = mysql_fetch_array($result));
?>
</select>


ЗАДАЧА!!! при каждом изменении значения в селект передавать это значение переменной $city без перезагрузки страницы. я понимаю, что для опытных товарищей это не сложно реализовать. и должно использоваться js. таких селектов несколько. потом они все собираются и идет поиск по каталогу. помогите пожалуйста.



Спустя 2 минуты, 21 секунда (26.07.2010 - 11:11) Basili4 написал(а):
Без перегрузки страницы только Ajax

Спустя 7 минут, 38 секунд (26.07.2010 - 11:19) titovff написал(а):
пусть Ajax, но только можно рабочий пимер. типа
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<select name="city">
<?
$result = mysql_query("SELECT DISTINCT city FROM catalog ORDER BY city");
$myrow = mysql_fetch_array($result);
echo "<option>Все</option>";
echo "<option "; if ($city=="Все") {echo "selected";} echo " value='Все'>Все</option>";
do {
if ($myrow[city]!="") { echo "<option "; if ($myrow[city]==$city) {echo "selected";} echo" value='".$myrow[city]."'>".$myrow[city]."</option>"; }
}
while ($myrow = mysql_fetch_array($result));
?>
</select>
<? echo $city?>
</body>
</html>

помогите с Ajax и как и куда поставить, чтобы выводилась переменная

Спустя 4 минуты, 39 секунд (26.07.2010 - 11:24) Basili4 написал(а):

Спустя 5 минут, 13 секунд (26.07.2010 - 11:29) Joker написал(а):
titovff еще раз не обромишь код тегами бан дам. и так первый пост правил за тебя.

Спустя 3 минуты, 30 секунд (26.07.2010 - 11:32) Joker написал(а):
тоже относиться к названию темы.

Спустя 12 минут, 4 секунды (26.07.2010 - 11:44) titovff написал(а):
Basili4 вам огромное спасибо за ссылочку. ща буду разбираться, но вроде там все доступно и то что надо!
извиняюсь за неграмотное оформление темы и вопроса.

Спустя 1 час, 31 минута, 5 секунд (26.07.2010 - 13:16) titovff написал(а):
вознинк еще вопрос. с примером разобрался, но в отличии от примера у меня при выводе переменной вместо русского текста карябли. помогите.

Спустя 3 минуты, 12 секунд (26.07.2010 - 13:19) Basili4 написал(а):
Это потому что AJAX работает с кодировкой утф8 а твой код скорее всего в win1251

Спустя 1 минута, 37 секунд (26.07.2010 - 13:20) titovff написал(а):
я об этом догадался, но как исправить?

Спустя 2 минуты, 24 секунды (26.07.2010 - 13:23) Basili4 написал(а):
Самый простой и логичный способ использовать утф на странице

Спустя 3 минуты, 5 секунд (26.07.2010 - 13:26) titovff написал(а):
а есть еще варианты? просто я на чужом сайте исправляю поиск и боюсь, что если поменяю кодировку, (а там куча ссылок на разные таблицы и страницы) то полезет куча ошибок, а хочется меньшей крови.

Спустя 51 минута, 59 секунд (26.07.2010 - 14:18) titovff написал(а):
Basili4 еще раз огромное спасибо!
для тех кому интересно вопрос с кодировкой решил
$txt=iconv('utf-8','windows-1251',$txt);

Спустя 1 час, 46 минут, 50 секунд (26.07.2010 - 16:05) titovff написал(а):
возник новый вопрос. вот рабочий код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<
title>Untitled Document</title>
<
script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;

req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;
else
ge('ajax').innerHTML = '<img src="prel.gif" />';

}
function Pusk()
{
var query;

query ='txt='+encodeURIComponent(ge('kat1').value);

Request(query);
}
</script>
</
head>
<
body>


<
select id="kat1" onChange="Pusk()">
<
option value="Все">Все</option>
<
option value="Мужская обувь">Мужская обувь</option>
<
option value="Женская обувь">Женская обувь</option>
<
option value="Детская обувь">Детская обувь</option>
<
option value="Спортивная обувь">Спортивная обувь</option>
<
option value="Другая обувь">Другая обувь</option>
</
select><br>

<
div id="ajax"></div> <br>
<
br>


</
body>
</
html>


ajax.php
<?php 
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
$txt=iconv('utf-8','windows-1251',$txt);
echo "<br>";
echo $txt;

?>

а мне нужно, чтоб я мог пользоваться значением переменной $txt
т,е я пишу после дива
<? echo $txt ?>
а переменная пустая

Спустя 3 минуты, 22 секунды (26.07.2010 - 16:08) Lenarfate написал(а):
твоя переменная txt - это то,что ты отправил ajax'ом в твой див.

вот это
Цитата
<?php
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
$txt=iconv('utf-8','windows-1251',$txt);
echo "<br>";
echo $txt;

?>


только внутри дива!

Спустя 26 секунд (26.07.2010 - 16:08) Basili4 написал(а):
<?php 
session_start()
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
$txt=iconv('utf-8','windows-1251',$txt);
echo "<br>";
$_SESSION['txt']=$txt;
echo $txt;

?>



втом же скрипте где див
перовой строчкой
<?php session_start() ?>

После дива

<?php echo($_SESSION['txt']) ?>

Спустя 17 минут, 16 секунд (26.07.2010 - 16:26) titovff написал(а):
в этом то и вопросссс. как ее из дива выдернуть.
может кто делал, попробую объяснить более доступно.
есть страница выбора по каталогу каталог не устраивает то, что нужно пошагово идти и до конца, только потом появиться кнопка.
вот то, что я набросал мое там есть возможность открыть доп поля для поиска если надо. нужно сделать так, чтоб можно было ввести данные в любые поля по желанию нажать на кнопку найти и тогда откроится товар. нужно как то присвоить переменным данные из селекта. в конце кода все обрабатывается вот так
<form method="POST">
<? print '<input type="hidden" name="city" id="city" value="'.$city.'">';
print '<input type="hidden" name="cat1" id="cat1" value="'.$cat1.'">';
print '<input type="hidden" name="cat2_select" id="cat2_select" value="'.$cat2_select.'">';
print '<input type="hidden" name="cat3" id="cat3" value="'.$cat3.'">';
print '<input type="hidden" name="brend" id="brend" value="'.$brend.'">';
print '<input type="hidden" name="country" id="country" value="'.$country.'">';
print '<input type="hidden" name="color" id="color" value="'.$color.'">';
print '<input type="hidden" name="material_verxa" id="material_verxa" value="'.$material_verxa.'">';
print '<input type="hidden" name="material_podkladka" id="material_podkladka" value="'.$material_podkladka.'">';
print '<input type="hidden" name="material_podoshva" id="material_podoshva" value="'.$material_podoshva.'">';

if ($material_verxa=="Все") {echo "<input type='image' src='img/btn/naiti.gif' alt='Найти' />";}
elseif ($material_podkladka=="Все") {echo "<input type='image' src='img/btn/naiti.gif' alt='Найти' />";}
elseif ($material_podoshva=="Все") {echo "<input type='image' src='img/btn/naiti.gif' alt='Найти' />";}
elseif (isset($material_podoshva)) {echo "<input type='image' src='img/btn/naiti.gif' alt='Найти' />";}
echo '<input type="hidden" name="submit_select" id="submit_select" value="submit_select">';
?>
</form>


Спустя 3 минуты, 39 секунд (26.07.2010 - 16:29) Basili4 написал(а):
titovff
В сессии храни я же тебе написал

Спустя 22 минуты, 3 секунды (26.07.2010 - 16:51) titovff написал(а):
Basili4 да сработало - спасибо, и хочется прыгать, да только т.к в селект грузятся данные из базы (другой причины я не вижу)
<form method="POST" id="tSearchrrr">

Цвет:  <select name="kat1" onChange="Pusk()">
<?
$res2 = mysql_query("SELECT DISTINCT color FROM catalog ORDER BY color");
$myr2 = mysql_fetch_array($res2);


do {
if ($myr2[color]!="") echo "<option "; if ($myr2[color]==$color) {echo "selected";} echo" value='".$myr2[color]."'>".$myr2[color]."</option>";
}
while ($myr2 = mysql_fetch_array($res2));
?>
</select>

</
form></td>
</
tr>
<
tr>
<
td><br>

<
div id="ajax"></div> <br>
<
br>
<?php echo($_SESSION['txt']) ?></td>
</
tr>
<
tr>
<
td>

<
form method="post">

<? print '<input type="hidden" name="city" id="city" value="Все">';
print '<input type="hidden" name="cat1" id="cat1" value="Все">';
print '<input type="hidden" name="cat2_select" id="cat2_select" value="Все">';
print '<input type="hidden" name="cat3" id="cat3" value="Все">';
print '<input type="hidden" name="brend" id="brend" value="Все">';
print '<input type="hidden" name="country" id="country" value="Все">';
print '<input type="hidden" name="color" id="color" value="'.$_SESSION['txt'].'">';
print '<input type="hidden" name="material_verxa" id="material_verxa" value="Все">';
print '<input type="hidden" name="material_podkladka" id="material_podkladka" value="Все">';
print '<input type="hidden" name="material_podoshva" id="material_podoshva" value="Все">';

echo "<input type='image' src='img/btn/naiti.gif' alt='Найти' />";
echo '<input type="hidden" name="submit_select" id="submit_select" value="submit_select">';
?>

</form>


переменная все время равна "Все" хотя от куда берет не понятно

Спустя 2 минуты, 5 секунд (26.07.2010 - 16:53) titovff написал(а):
она и поумолчанию, без выбора селекта= все, новерное где то цепляет, буду проверять код

Спустя 16 часов, 59 минут, 12 секунд (27.07.2010 - 09:53) titovff написал(а):
Basili4 спасибо. заработало. вчера под вечер просто я уже тупил. совпадало имя у селекта и данные брались из первого, а я там не менял и поэтому было все время =все .
думаю, что эта тема закрыта.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.