Форум → Программирование → Пыхнуть хотите? → F.A.Q. → Интерактивный select без перезагрузки страницы
Интерактивный select без перезагрузки страницы
Страницы: ← Предыдущая страница • Следующая страница →
-
22 ноября 2009 г. 14:01, спустя 1 час 40 минут 7 секунд
Логику я понимаю, а можно это в коде показать ? -
22 ноября 2009 г. 15:12, спустя 1 час 11 минут 4 секунды
У меня есть вот такой код :$(document).ready(function()
{$("#username").blur(function() { $("#msgbox").removeClass().addClass('messagebox').text('Проверка…').fadeIn("slow");
$.post("user_availability.php",{ user_name:$(this).val() } ,function(data) {
if(data=='no')
{$("#msgbox").fadeTo(200,0.1,function() {$(this).html('логин занят').addClass('messageboxerror').fadeTo(900,1); }); }
else
{$("#msgbox").fadeTo(200,0.1,function() {$(this).html('Логин доступен').addClass('messageboxok').fadeTo(900,1); }); }
}); }); });
вроде он не сложный, но я уже 2 дня не могу их скрестить.
Может кто-нибудь мне поможет ? -
22 ноября 2009 г. 16:05, спустя 53 минуты 32 секунды
fadeTo(200,0.1,function()
у тебя прозрачность в обоих случаях -
22 ноября 2009 г. 16:50, спустя 44 минуты 21 секунду
Здесь по идее нужно вместо function(data) указывать наш doload (без $.post конечно), а к ответу прицепить любую строчку в IF.
Я вместо msgbox пишу result (id нашего дива)…а что делать с #username ? С ним не работает, без него если и работает, то рэзко, а я люблю, когда всё плавно, ну вы понимаете :) -
22 ноября 2009 г. 20:32, спустя 3 часа 42 минуты 29 секунд
Удалось получить такую смесь:$(document).ready(function() {
$("#prfl").blur(function() {
$("#result").text('Загрузка…').fadeIn("slow");
$.post("back-end.php",{ send-var :$(this).val() } ,function(data) {
if(data=='no') {
$("#result").fadeTo(200,0.1,function() {
$(this).html('Ошибка').fadeTo(900,1); }); }
else {$("#result").fadeTo(200,0.1,function() {
$(this).html(data).fadeTo(900,1); }); }
}); }); });
Поправьте пожалуйста, кто умеет, чтобы оно СРАЗУ выводилось, а не по нажатию мышки на свободное место,
и вобщем-то JSHTTPREQUEST вооще не нужен !Спустя 100 сек.send-var - всмысле sendvar - переменная, которую передаем в бэк-енд. -
23 ноября 2009 г. 5:30, спустя 8 часов 58 минут 9 секунд
Всё. Победила !
Если есть JQUERY - JSHTTPREQUEST в печку - 4 строчки кода !
Всем спасибо, охренеть, как помогли ! :) -
24 ноября 2009 г. 14:17, спустя 1 день 8 часов 47 минут
всем привет!помогите пожалуйста новичку =)
задача у меня такая - есть бд автомобилей, водителей и т.д. нужно при выборе из списка автомобиля формировать список водителей, выбирать водителя и заполнять ещё 2 поля.и при нажатии на ссылку "добавить" добавляется новая строка.и в ней должно то же самое работать.
Пользуясь статьёй http://pyha.ru/articles/php/ajax-select/ , написала код на php и js. ошибка в том, что когда во второй и последующих строчках выбираю автомобиль, то изменяется не текущий список автомобилей(в этой строчке), а список из верхней(первой) строчки
Используется 2 файла:<html>
<head><LINK REL=STYLESHEET TYPE="text/css" HREF="style.css">
<title>Ввод данных - касса</title>
</head>
<body>
<h2> <center>Касса - сдано за план</center> </h2> <br>
<?php
include("mysql.inc");
?>
<form action="kassa_result.php" method="post">
Дата: <input type="date" name="date" ><br></br>
<span id="table">
<table width = "90%" border = "0" cellpadding="2" cellspacing = "0" BGCOLOR=DCDCDC>
<tr>
<td ><b>Гос. № а/м</b></td>
<td ><b>Водитель</b></td>
<td ><b>Сумма на план</b></td>
<td ><b>Сумма за ремонт и з/ч</b></td>
<td><a href="#" onclick="return addline();">добавить</a></td>
</tr>
<tr id="newline" nomer="[0]">
<td>
<script language="JavaScript" src="JsHttpRequest.js"></script>
<script language="JavaScript">
function doload(value){
var req=new JsHttpRequest();
req.onreadystatechange=function(){
if(req.readyState==4) document.getElementById("result[<?= $HTTP_POST_VARS['count']?>]").innerHTML=req.responseText;}
req.open(null,"kassa_help.php",true);
req.send({auto:value});}
</script>
<!– Создаем форму –>
<!– Теперь пихаем в нее первый select –>
<select name="auto[0]" onchange="doload(this.value);">
<option value="no" selected>Выберите номер…</option>
<?php
$sql = mysql_query("SELECT * FROM auto order by number_gos");
while ($auto = mysql_fetch_object($sql)) {
echo "<option value = \"$auto->auto_ID\">$auto->number_gos</option>";
}
?>
</select>
<br><br>
</td>
<!– Вставляем тэг с нашим идентификатором, вместо которого у нас будет появляться второй select –>
<td>
<div id="result[<?= $HTTP_POST_VARS['count']?>]" ></div>
</td>
<td><input type = "text" name = sum_plan[0]></td>
<td><input type = "text" name = sum_rem[0]></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</a></td>
</tr>
<!– Теперь вставляем кнопку и закрываем форму. –>
</table>
</span>
<input type="hidden" name="count" value="0">
<script language="JavaScript">
function addline()
{
c=++document.getElementById('count').value; // увеличиваем счётчик строк
s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
re=/(.*)(<tr id=.*>)(<\/table>)/gi;
// это регулярное выражение позволяет выделить последнюю строку таблицы
s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
// заменяем все цифры к квадратных скобках
s2=s1.replace(/\[\d+\]/gi,'['+c+']');
// на номер новой строки
s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
// заменяем аргумент функции rmline на номер новой строки
s=s.replace(re,'$1$2'+s2+'$3');
// создаём HTML-код с добавленным кодом новой строки
document.getElementById('table').innerHTML=s;
// возвращаем результат на место исходной таблицы
return false; // чтобы не происходил переход по ссылке
}
function rmline(q)
{
s=document.getElementById('table').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?newline"? nomer="?\\['+q+'.*?<\\/tr>','gi');
// это регулярное выражение позволяет выделить строку таблицы с заданным номером
s=s.replace(re,'');
// заменяем её на пустое место
document.getElementById('table').innerHTML=s;
return false;
}
</script>
<input type="submit" value="Отправить">
</form>[/php]
второй - "kassa_help.php"
[php]<?
include("mysql.inc");
require("JsHttpRequest.php"); //Подключаем библиотеку
$JsHttpRequest=new JsHttpRequest("windows-1251"); //Создаем экземпляр класса, указываю рабочую кодировку.
//Далее все просто. В зависимости от выбранного параметра в первом select`e, заполняем переменную $html необходимым кодом.
$auto = ($HTTP_POST_VARS['auto']);
echo $count = ($HTTP_POST_VARS['count']);
$sql = mysql_query("SELECT distinct driver_id FROM list where `auto_ID` = '$auto'");
$n= mysql_num_rows($sql);
if ($n>0){ ?>
<select name = "driver[<?= $count?>]"><?
while($d = mysql_fetch_array($sql)) {
//$driver_id = $d->driver_ID;
$sqll = mysql_query("SELECT * FROM driver where `driver_id` ='$d[0]' ");
while ($driver = mysql_fetch_object($sqll)) {
echo "<option value = \"$driver->driver_ID\">$driver->surname $driver->name $driver->sec_name</option>";
}
} ?> </select> <?}
else echo "Сначала заполните ПЛ!";
?>
-
24 ноября 2009 г. 14:11, спустя 23 часа 53 минуты 47 секунд
блин, ребят, надо переписать этот фак на jquery ((
срочняквсе умрут, а я изумруд -
24 ноября 2009 г. 14:12, спустя 1 минуту 9 секунд
md5, ага, ты ответственный )https://smappi.org/ - платформа по созданию API на все случаи жизни -
24 ноября 2009 г. 14:21, спустя 8 минут 15 секунд
хорошо
md5, ага, ты ответственный )
сегодня напишу новый факвсе умрут, а я изумруд -
24 ноября 2009 г. 16:21, спустя 1 час 59 минут 59 секунд
помогу чем смогу
хорошо
md5, ага, ты ответственный )
сегодня напишу новый фак -
24 ноября 2009 г. 16:22, спустя 1 минуту 20 секунд
да лан, там кода на 15 минут и 45 - описалово + оформление :)
помогу чем смогу
хорошо
md5, ага, ты ответственный )
сегодня напишу новый факвсе умрут, а я изумруд -
25 ноября 2009 г. 9:45, спустя 17 часов 23 минуты 17 секунд
churlena, тут почитай : http://www.linkexchanger.su/2009/82.html -
25 ноября 2009 г. 10:15, спустя 29 минут 34 секунды
я, кстати, написал, в обед доофорляю и выложувсе умрут, а я изумруд -
26 ноября 2009 г. 2:34, спустя 16 часов 19 минут 3 секунды
Положим конец JsHTTPRequestСпустя 202 сек.кстати, в статьях не работае тэгвсе умрут, а я изумруд
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!