[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Mysql, php, всплывающий div.
admrp
Существует некая таблица, в которую загружаются данные из бд. При обработке их каждая строка таблицы начинается с порядкового номера, который является идентификатором в массиве и при выдаче во всплывающий див. Див должен появляться по клику на ссылку являющуюся этим id(порядковым номером), но происходит то, что сначала страница по ссылке обновляется и див просто появляется и сразу исчезает, при повторном клике див появляется как положено с нужной информацией. ID передаётся get-оми проверяется на пустоту. Построено это на MVC от Twin(a), поэтому работа не с оригиналом гет-параметров.
<a href="'.$num.'#" onclick="showLayer()">'.$num.'</a>

if(!empty($GET['page']))
{
if(array_key_exists($GET['page'], $r))
{
echo '<div id="full" style="visibility:hidden;
position:fixed;
background:white;
border:1px solid;
padding:15px;
top:10%;
max-width:50%;
left:10%;
bottom:1%;
overflow:auto;" onclick="hiddenLayer()">'

.$r[$GET['page']]['history'].
'</div>';
}
}




Спустя 36 минут, 58 секунд (28.09.2010 - 15:18) Joker написал(а):
чот я непонел а что хочешь?) или что не пашет?)

Спустя 25 минут, 23 секунды (28.09.2010 - 15:44) admrp написал(а):
Аа)) ну так, хочу чтобы
Цитата
происходит то, что сначала страница по ссылке обновляется и див просто появляется и сразу исчезает
- вот этого не было, а див сразу нормально отображался, при первом клике. Наверное сделать чтобы страница не обновлялась не получится.?

Спустя 20 минут, 49 секунд (28.09.2010 - 16:05) Joker написал(а):
showLayer() покажи

Спустя 15 часов, 34 минуты, 42 секунды (29.09.2010 - 07:39) admrp написал(а):
Цитата
showLayer() покажи
- не понял ..
вот яваскрипт
<script type="text/javascript"> 
function
hiddenLayer() {
document.getElementById("full").style.visibility = "hidden";
}
function showLayer() {
document.getElementById("full").style.visibility = "visible";
}
</script>

Спустя 17 минут, 52 секунды (29.09.2010 - 07:57) Michael написал(а):
У тебя есть таблица, у которой в строках ссылки, нажимая которые тут же должен появляться всплывающий div с соответствующей строке информацией?

Спустя 3 минуты, 7 секунд (29.09.2010 - 08:00) admrp написал(а):
да. верно. та ссылка, что выше указана, как раз и есть.

Спустя 3 минуты, 54 секунды (29.09.2010 - 08:04) Michael написал(а):
А сами данные (которые будут в дивах), находятся где - на сервере или уже подгружены на страничку?

Спустя 4 минуты (29.09.2010 - 08:08) admrp написал(а):
Они подгружены, но обработаны пользовательской функцией на определённое кол-во символов в ячейку - "подрезаны".
'<td class="td"><small>'. raZor($r[$num]['history']) .'
 ...<br><span style="color:blue"><a href="'
.$num.'#" onclick="showLayer()">'.$num.'</a></span></small></td>'

Спустя 5 минут, 8 секунд (29.09.2010 - 08:13) Michael написал(а):
Ну попробуй:
onclick="showLayer(); return false;"

Спустя 7 минут, 29 секунд (29.09.2010 - 08:21) admrp написал(а):
div нормально появляется, а данные не изменяются. загружается всегда первый id

Спустя 4 минуты, 57 секунд (29.09.2010 - 08:26) Michael написал(а):
А где у тебя код который меняет данные в диве?

Спустя 7 минут, 16 секунд (29.09.2010 - 08:33) admrp написал(а):
ну только вот, то что выше, должно меняться по полученному гету - но он работает только с
onclick="showLayer()
без фальш.
if(!empty($GET['page']))
{
if(array_key_exists($GET['page'], $r))
{
echo '<div id="full" style="visibility:hidden;
position:fixed;
background:white;
border:1px solid;
padding:15px;
top:10%;
max-width:50%;
left:10%;
bottom:1%;
overflow:auto;" onclick="hiddenLayer()">'

.$r[$GET['page']]['history'].
'</div>';
}
}

Спустя 12 минут, 21 секунда (29.09.2010 - 08:45) Michael написал(а):
вам походу кроме чтения уроков твина не мешало бы подучить основы, т.к. вы вообще не понимаете что делаете. php код что вы привели не имеет никакого отношения к тому что я спрашивал.

Спустя 6 минут, 32 секунды (29.09.2010 - 08:52) admrp написал(а):
Читая литературу я вообще ничего не пойму и могу перечитывать главу несколько раз без толку. я не понимаю почему он не имеет отношения если он и меняет данные, которые находятся в массиве.
$key = $GET['page'];
$res = mysqlQuery("SELECT * FROM `". PUH_DBPREFIX ."info`");

ob_start();
if(mysql_num_rows($res) > 0)
{
$i = 1;
while($row = mysql_fetch_assoc($res))
{
$num = $row['num'];
$r = array(
$num => array(
'etnonim' => $row['etnonim'],
'altname' => $row['altname'],
'etimologia' => $row['etimologia'],
'localize' => $row['localize'],
'history' => $row['history'],
'uran' => $row['uran'],
'tamga' => $row['tamga'],
'olgc' => $row['olgc'])
);


echo '<span id="tr"><tr><td align="center" style="background-color:lightyellow">'. $num .'</td>
<td class="td"><small>'
. $r[$num]['etnonim'] .'</small></td>
<td class="td"><small>'
. $r[$num]['altname'] .'</small></td>
<td class="td"><small>'
. $r[$num]['etimologia'] .'</small></td>
<td class="td"><small>'
. $r[$num]['localize'] .'</small></td>
<td class="td"><small>'
. raZor($r[$num]['history']) .'
 ...<br><span style="color:blue">
<a href="'
.$num.'#" onclick="showLayer()">'.$num.'</a></span></small></td>
<td class="td"><small>'
. $r[$num]['uran'] .'</small></td>
<td class="td"><small>'
. $r[$num]['tamga'] .'</small></td>
<td class="td"><small>'
. $r[$num]['olgc'] .'</small></td>';

if(!empty($GET['page']))
{
if(array_key_exists($GET['page'], $r))
{
echo '<div id="full" style="visibility:hidden;
position:fixed;
background:white;
border:1px solid;
padding:15px;
top:10%;
max-width:50%;
left:10%;
bottom:1%;
overflow:auto;" onclick="hiddenLayer()">'

.$r[$GET['page']]['history'].
'</div>';
}
}
}

if($i++)
{
echo '</tr></span>';
}
}


$db_table = ob_get_contents();
ob_end_clean();

Спустя 9 минут, 37 секунд (29.09.2010 - 09:01) Michael написал(а):
php код он формирует страницу на сервере, а ты говорил, что данные уже на странице(я уточнял у тебя). И за вывод дива с нужной информацией отвечает js код, который ты видимо забыл скопипастить.

Спустя 32 минуты, 1 секунда (29.09.2010 - 09:33) admrp написал(а):
)Нет больше никакого ява-кода. Информация отображается верная, но только после обновления страницы при полученном гет-параметре. Ява у меня отвечает только за появление дива по клику кнопкой мыши на ссылку, а данные заполняющие див выбираются при помощи php.

Спустя 1 час, 57 секунд (29.09.2010 - 10:34) admrp написал(а):
в общем, я решил проблему мгновенного исчесновения дива.
Проблема была ни в php и ни в яве, проблема была в css - по не внимательности пропустил.


_____________
"...истина где-то рядом..."
Быстрый ответ:

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