Возник опять вопрос...
Есть таблица в БД где хранится информация о пользователях.
Нужно вывести такой список:
Имя Фамилия (подробно)
При нажатии "(подробно) " под именем и фамилией вывести адрес, телефон и т.д НЕ ПЕРЕГРУЖАЯ СТРАНИЦЫ.
Искал такое в google вроде такое делается с помощью javascript или ajax.
Кто то такое пробовал делать, на чем проще скрипт писать и вообще насколько он большой???
И как выводить этот список в таблице???
Спустя 9 минут, 29 секунд (18.01.2011 - 01:07) ИНСИ написал(а):
Делается это так:
1. Имеем Кнопку "Подробнее"
2. Делаем в js код:
3. В диве прописываем: id='div_1' onClick="showBox('div_1');"
1. Имеем Кнопку "Подробнее"
2. Делаем в js код:
function showBox(div) {
if(document.getElementById(div).style.display == 'none')
document.getElementById(div).style.display = 'block';
else
document.getElementById(div).style.display = 'none';
}
3. В диве прописываем: id='div_1' onClick="showBox('div_1');"
Спустя 23 минуты, 55 секунд (18.01.2011 - 01:31) as009 написал(а):
Спасибо большое!!!
Я думал это очень сложно.
Расскажите пожалуйста как оно должно работать.
Я должен в отдельный div запихнуть подробную информацию и скрыть её, а при клике показать??
Например у меня есть список:
user1(подробно)
user2 (подробно)
При нажатии "подробно" на user1:
user1
->address phone city
user2
Получается user2 сместился ниже, а на его месте вывелась инф. о user1
Или как-то по другому???
Я думал это очень сложно.
Расскажите пожалуйста как оно должно работать.
Я должен в отдельный div запихнуть подробную информацию и скрыть её, а при клике показать??
Например у меня есть список:
user1(подробно)
user2 (подробно)
При нажатии "подробно" на user1:
user1
->address phone city
user2
Получается user2 сместился ниже, а на его месте вывелась инф. о user1
Или как-то по другому???
Спустя 54 минуты, 3 секунды (18.01.2011 - 02:25) Crash2007 написал(а):
пробуй
Спустя 23 минуты, 11 секунд (18.01.2011 - 02:49) ИНСИ написал(а):
Должно быть так:
Заметь, у каждого спрятанного дива, должен быть уникальный id
user1 (<a href="#" onClick="showBox('div_1');" >подробно</a>)
<div id="div_1" style="display: none;">address phone city</div>
user2 (<a href="#" onClick="showBox('div_2');" >подробно</a>)
<div id="div_2" style="display: none;">address phone city div 2</div>
Заметь, у каждого спрятанного дива, должен быть уникальный id
Спустя 21 час, 29 минут, 44 секунды (19.01.2011 - 00:18) as009 написал(а):
Спасибо большое, заработало!!!
Но только для одной записи user1
Дело в том что насколько я понял из кода то для каждого user я должен создавать отдельную ссылку и div.
Список достается из БД количество записей user я не знаю, постоянно меняется,
по этому я не смогу для каждого писать код.
Может можно как-то автоматизировать процесс создания div и ссылок.
Что бы сколько записей user столько и генерировалось ссылок.
Получается нужно заранее узнать сколько записей в БД, а потом в цикле их как то создавать или по другому???
Но только для одной записи user1
Дело в том что насколько я понял из кода то для каждого user я должен создавать отдельную ссылку и div.
Список достается из БД количество записей user я не знаю, постоянно меняется,
по этому я не смогу для каждого писать код.
Может можно как-то автоматизировать процесс создания div и ссылок.
Что бы сколько записей user столько и генерировалось ссылок.
Получается нужно заранее узнать сколько записей в БД, а потом в цикле их как то создавать или по другому???
Спустя 14 часов, 16 минут, 44 секунды (19.01.2011 - 14:35) ИНСИ написал(а):
as009 я у себя сейчас проверил и все работает для обоих дивов, вот:
Свернутый текст
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
function showBox(div) {
if(document.getElementById(div).style.display == 'none')
document.getElementById(div).style.display = 'block';
else
document.getElementById(div).style.display = 'none';
}
</script>
</head>
<body>
user1 (<a href="#" onClick="showBox('div_1');" >подробно</a>)
<div id="div_1" style="display: none;">address phone city</div>
user2 (<a href="#" onClick="showBox('div_2');" >подробно</a>)
<div id="div_2" style="display: none;">address phone city div 2</div>
</body>
</html>
Цитата |
по этому я не смогу для каждого писать код. |
и не надо. Я же тебе сказал:
Цитата |
Заметь, у каждого спрятанного дива, должен быть уникальный id |
Получается, когда ты выводишь данные из БД, то делай вот так:
echo '
user ' . $id . ' (<a href="#" onClick="showBox(\'div_'.$id.'\');" >подробно</a>)
<div id="div_'.$id.'" style="display: none;">тут инфа спрятанная</div>
';
$id - это уникальный номер пользователя
Спустя 8 часов, 17 минут, 58 секунд (19.01.2011 - 22:53) Guest написал(а):
Все заработало как надо!!!)
И еще у меня есть такой код:
Хочу что б при нажатии на ссылку добавлялось новое поле ввода.
Но почему то не хочет работать, javascript знаю очень плохо может кто подскажет в чем проблема.
И еще у меня есть такой код:
<div id="third">
<center><font color=#9e9e9e><u><b>Phones<b></u></center><br>
<input type="text" name="T1" size="15">
<br><br><input type="text" name="T2" size="15">
<a href="" onclick="Add()" >add</a>
</div>
function Add()
{
document.write(<form><input type="text">name="phone" size="15"</form> ");
document.write("<br />");
}
Хочу что б при нажатии на ссылку добавлялось новое поле ввода.
Но почему то не хочет работать, javascript знаю очень плохо может кто подскажет в чем проблема.
Спустя 1 час, 11 минут, 42 секунды (20.01.2011 - 00:05) sharki написал(а):
Guest
А кавычки кто будет ставить?
А кавычки кто будет ставить?
function Add()
{
document.write('<form><input type="text" name="phone" size="15"></form>');
document.write("<br />");
}
Спустя 39 минут, 9 секунд (20.01.2011 - 00:44) as009 написал(а):
С кавычками заработало, но нет так как ожидал:
вот код:
При нажатии на ссылку нужно чтоб поле для записи появлялось под теми полями которые уже есть.
А вместо этого открывается новая страница, появляется поле и страница сразу закрывается....
вот код:
<div id="third">
<center><font color=#9e9e9e><u><b>Phones<b></u></center><br>
<input type="text" name="T1" size="15">
<br><br><input type="text" name="T2" size="15">
<a href="" onclick="Add()">add</a>
</div>
При нажатии на ссылку нужно чтоб поле для записи появлялось под теми полями которые уже есть.
А вместо этого открывается новая страница, появляется поле и страница сразу закрывается....
Спустя 18 часов, 36 минут, 18 секунд (20.01.2011 - 19:20) as009 написал(а):
Подскажите пожалуйста как применить javascript к конкретному div ???
Спустя 19 минут, 8 секунд (20.01.2011 - 19:39) inpost написал(а):
обращайся по ID
Спустя 10 минут, 7 секунд (20.01.2011 - 19:49) Игорь_Vasinsky написал(а):
используй ID - он должен быть уникальным для каждого из элементов
Спустя 8 минут, 7 секунд (20.01.2011 - 19:57) sharki написал(а):
Не вариант.
А если у него целая куча этих дивов и они добавляются динамически, тут надо пользоваться свойством this и проходится циклом по всем элементам объекта.
Жопа короче
А если у него целая куча этих дивов и они добавляются динамически, тут надо пользоваться свойством this и проходится циклом по всем элементам объекта.
Жопа короче
Спустя 3 минуты, 51 секунда (20.01.2011 - 20:01) sharki написал(а):
Примерно таким образом, но правда тут берутся все дивы на странице.
Ну и потом можно взять дочерний элемент этого объекта
Ну и сделать условие, если данный див имеет класс "блок" (например) то выполнить функцию отображения или чего либо
div = document.getElementsByTagName('DIV');
for(var i = 0; i < 2; i++)
div[i].onclick = myFunction;
Ну и потом можно взять дочерний элемент этого объекта
function myFunction() {
alert(this.firstChild.nodeValue);
}
Ну и сделать условие, если данный див имеет класс "блок" (например) то выполнить функцию отображения или чего либо
Спустя 22 минуты, 11 секунд (20.01.2011 - 20:24) ИНСИ написал(а):
Цитата |
А если у него целая куча этих дивов и они добавляются динамически, тут надо пользоваться свойством this и проходится циклом |
Не согласен. Можно придавать случайное (уникальное) имя для дива. И в функцию передавать id
Спустя 5 минут, 36 секунд (20.01.2011 - 20:29) sharki написал(а):
не ну если с параметрами то да, можно и так.
Спустя 25 минут, 22 секунды (20.01.2011 - 20:54) as009 написал(а):
Не очень понял, я javascript очень плохо знаю.
Вот у меня есть div:
Можно ли имя этого div передать в скрипт и изменение применить именно к этому div.
Вот у меня есть div:
<div id="newDiv">
<input type="text" name="T1" size="15">
<a href="javascript:void(0)" onclick="Add()">add</a>
</div>
Можно ли имя этого div передать в скрипт и изменение применить именно к этому div.
Спустя 3 минуты, 12 секунд (20.01.2011 - 20:58) inpost написал(а):
as009
Ответ на вопрос: можно!
Совет: если плохо знаешь, то ты подразумеваешь, что вообще не знаешь! А это повод узнать что-то новенькое!
Ответ на вопрос: можно!
Совет: если плохо знаешь, то ты подразумеваешь, что вообще не знаешь! А это повод узнать что-то новенькое!
Спустя 2 часа, 53 минуты, 56 секунд (20.01.2011 - 23:52) as009 написал(а):
inpost спасибо за совет)))
Вот сделал все работает:
Только осталась проблема как давать имена созданным полям и как их записывать в БД, ведь я не знаю сколько полей может быть 5 или 10 (пользователь сам решает)...
Как такое можно реализовать, может кто то такое делал уже, когда заранее не известно сколько записей и все их надо записать в БД???
Вот сделал все работает:
function Add() {
var DIV = document.getElementById('newDiv'), X='<br><br><input type="text" name="phone" size="15">';
DIV.innerHTML += X
}
Только осталась проблема как давать имена созданным полям и как их записывать в БД, ведь я не знаю сколько полей может быть 5 или 10 (пользователь сам решает)...
Как такое можно реализовать, может кто то такое делал уже, когда заранее не известно сколько записей и все их надо записать в БД???
Спустя 6 минут, 42 секунды (20.01.2011 - 23:58) inpost написал(а):
name="phone[]"
Тогда в скрипт-обработчик попадёт массив всех существующих инпутов с именем "phone[]".
Тогда в скрипт-обработчик попадёт массив всех существующих инпутов с именем "phone[]".
Спустя 10 часов, 30 минут, 7 секунд (21.01.2011 - 10:28) linker написал(а):
Тему перенес в JavaScript, ибо много явы и хтмл и ничего про PHP.
Спустя 1 день, 7 часов, 21 минута, 57 секунд (22.01.2011 - 17:50) as009 написал(а):
Что-то не получается передавать массивом(
Вот форма где я сохраняю данные в массив phone[]
Вот скрипт который принимает данные из формы:
Если одна запись в массиве то работает, если больше то выдает ошибку...
Что я сделал неправильно, может массив как-то неправильно передал???
Вот форма где я сохраняю данные в массив phone[]
<script language="JavaScript">
function Add() {
var DIV = document.getElementById('newDiv'), X='<br><br><input type="text" name="phone[]" size="15">';
DIV.innerHTML += X
}
</script>
<div id="newDiv">
<input type="text" name="phone[]" size="15">
<a href="#" onclick="Add();">add</a>
</div>
Вот скрипт который принимает данные из формы:
$Phone=$_POST['phone'];
foreach($Phone as $value){
echo $value."";}
Если одна запись в массиве то работает, если больше то выдает ошибку...
Что я сделал неправильно, может массив как-то неправильно передал???
Спустя 3 часа, 33 минуты, 37 секунд (22.01.2011 - 21:24) as009 написал(а):
Уже все перепробовал ничего не хочет работать.
Что никто такого не делал???
Передать данные в массив, а потом достать их из него...
Что никто такого не делал???
Передать данные в массив, а потом достать их из него...
Спустя 19 минут, 47 секунд (22.01.2011 - 21:44) sharki написал(а):
Почитай эту тему, в этой теме тоже массивы передавали http://phpforum.ru/index.php?showtopic=371...15entry787603
Спустя 3 часа, 11 минут, 37 секунд (23.01.2011 - 00:55) as009 написал(а):
Все дело в javascript
Попробовал несколько полей в самой форме сделать и записать в массив, все работает, а если добавлять поля через javascript, то не работает.
Я что как-то не правильно добавляю поля????
Попробовал несколько полей в самой форме сделать и записать в массив, все работает, а если добавлять поля через javascript, то не работает.
Я что как-то не правильно добавляю поля????