Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Помогите соединить php и JavaScript (Berenold)
Author Message
Berenold
Заглянувший



Joined: 23 May 2010
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Sun May 23, 2010 7:19 pm (написано за 4 секунды)
   Post subject: Помогите соединить php и JavaScript
Reply with quote

Доброго времени суток. Занялся изучением javaScript. И вот решил написать следующую штуку:
show/hide для текста который хранится в базе данных. Изначально мы не знаем сколько записей у нас в таблице и все нужно делать через цикл.
Таблица базы:
Code (any language): скопировать код в буфер обмена
CREATE TABLE `ben` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `post` longtext NOT NULL,
  `bentitle` varchar(255) NOT NULL,
  `benpost` longtext NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=cp1251;
"post" - просто текст который пишется перед скрываемым,
"bentitle" - название услуги(собственно по нажатию которой и должен разворачиваться скрытый текст)
"benpost" - описание услуги(show/hide текст)

config.php:
Code (any language): скопировать код в буфер обмена
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pasw = 'Angelbk';
$db_name = 'syit2';
// Соединяемся, выбираем базу данных
$db_info = mysql_connect($db_host, $db_user, $db_pasw) or die("Could not connect : " . mysql_errno() . " " . mysql_error());
mysql_select_db($db_name, $db_info) or die("Select database not successfull : " . mysql_errno() . " " . mysql_error());
?>
funct.php:
Code (any language): скопировать код в буфер обмена
inex.php:
Code (any language): скопировать код в буфер обмена
<?php
require_once("funct.php");
gettable(ben);
?>
Все выводится сколько бы записей я не делал все нормально.

После чего взял вот такой JavaScript
java.php:
Code (any language): скопировать код в буфер обмена
<style>
.myViewLinks { display: none; }
</style>

<script>
 // Обворачиваем функцию toggle в локальное замыкание:
var toggle = function() {
    // Ссылка на текущий открытый div:
    var currentDiv = null;

    // Функция для "раскрытия" элемента:
    function open(divElement) {
        // Тут можно добавить эффект "плавного" открытия:
        divElement.style.display = "block";
        currentDiv = divElement;
    }

    // Функция для "закрытия" элемента:
    function close(divElement) {
        // Тут можно добавить эффект "плавного" закрытия:
        divElement.style.display = "none";
        currentDiv = null;
    }

    // Возвращаем функцию, которая будет вызываться по toggle()
    return function(divID) {
        // Получаем элемент из DOM
        var divElement = document.getElementById(divID);
        // Если такой есть:
        if (divElement) {
            // Если уже открыт этот div, то просто закрываем.
            if (divElement === currentDiv) {
                close(currentDiv);
            // Если открыт другой div, то закрываем и открываем текущий:
            } else if(currentDiv != null) {
                close(currentDiv);
                open(divElement);
            // Иначе - просто открываем:
            } else open(divElement);
        }
    }
  // Вызываем нашу "обертку", теперь toggle() вызывает функцию, описанную по "return"
  }();
</script>


<a href="javascript://" onClick="toggle('div1');return false;">Блок скрытого текста один</a>
<div class="myViewPost" id="div1">
Сдесь содержится текст который показывается и скрывается</div>
<br />

<a href="javascript://" onClick="toggle('div2');return false;">Блок скрытого текста два</a>
<div class="myViewPost" id="div2">
Сдесь содержится текст который показывается и скрывается
</div>
Опять таки все нормально работает открывается и закрывается.
Попробовал соединить funct.php и java.php получилась следующее:
funct_java.php
Code (any language): скопировать код в буфер обмена
соответственно переделываем
index.php:
Code (any language): скопировать код в буфер обмена
<?php
require_once("funct_java.php");
gettable(ben);
?>
Вместо списка который мне нужно получить я получаю пустую страницу. помогите пожалуйста соединить эти два скрипта.
PS. Простите что так много текста просто хотел как можно подробнее описать все.
Back to top
View user's profile Send private message
dimagolov
Участник форума



Joined: 04 Feb 2007
Posts: 1664
Карма: 96
   поощрить/наказать

Location: Christ Church, Barbados

PostPosted: Mon May 24, 2010 3:33 pm (спустя 20 часов 14 минут; написано за 46 секунд)
   Post subject:
Reply with quote

phpfaq.ru/debug и на всякий случай основы (phpfaq.ru/na_tanke)
Back to top
View user's profile Send private message
reutovo
Заглянувший



Joined: 15 Jun 2008
Posts: 8
Карма: 2
   поощрить/наказать

Location: Реутов

PostPosted: Sun Jul 18, 2010 11:59 pm (спустя 1 месяц 25 дней 8 часов 25 минут; написано за 7 минут 45 секунд)
   Post subject:
Reply with quote

Объемная статья посвященная show/hide/toggle (javascript.ru/ui/show-hide-toggle)

Мне лично хватает следующий функции:
Code (JavaScript): скопировать код в буфер обмена
function toggle(id){
        var o = document.getElementById(id);
                if(o.style.display == 'block'){
                        o.style.display='none'
                } else {
                                o.style.display='block';
                        }
}
Вызывается это все по событию onclick:
Code (html): скопировать код в буфер обмена
<a (december.com/html/4/element/a.html) href='#' onclick="toggle('here_you_id_in')"> (december.com/html/4/element/.html)Some link...</a>
Кусок CSS:
Code (css): скопировать код в буфер обмена
div#SomeClass1 {
        display: none;
        width: 400px;
        height: 250px;
        border: 1px black solid;
        background-color: #8b0000;
}
Code (html): скопировать код в буфер обмена
<div (december.com/html/4/element/div.html) id='SomeClass1'> (december.com/html/4/element/.html)
        Content here...
</div>
P.S. Обратите внимание на кусок кода, который вы отдаете клиенту в funct_java.php. Вы пытаетесь зачем-то вместо функции toggle, запихнуть в onclick событие значение из БД.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML