Помогите соединить Php и Javascript

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Berenold, 23 май 2010.

  1. Berenold

    Berenold Гость

    Доброго времени суток. Занялся изучением javaScript. И вот решил написать следующую штуку:
    show/hide для текста который хранится в базе данных. Изначально мы не знаем сколько записей у нас в таблице и все нужно делать через цикл.
    Таблица базы:
    Код (Text):
    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:
    Код (Text):
    <?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:
    Код (Text):
    <?php
    require_once("config.php");

    //указываем нужную кодировку
    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");

    function gettable($tablename) //функция которая осуществляет чтение записи в таблице выводит ее на экран
    {
    //результирующий набор данных хранится в переменной $sql
    $sql = mysql_query("SELECT * FROM $tablename");
    $i = 0;
    while ($tablerows = mysql_fetch_row($sql))
    {
    //теперь в цикле для каждой полученной строки сделаем вывод
    //$tablerows[1] соответствует полю "первичный текст"
    //$tablerows[2] соответствует полю "заголовок услуги"
    //$tablerows[3] соответствует полю "текст услуги"
    echo("$tablerows[1]<br>$tablerows[2]<br>$tablerows[3]");
    }
    }
    ?>
    inex.php:
    Код (Text):
    <?php
    require_once("funct.php");
    gettable(ben);
    ?>
    Все выводится сколько бы записей я не делал все нормально.

    После чего взял вот такой JavaScript
    java.php:
    Код (Text):
    <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="java script://" onClick="toggle('div1');return false;">Блок скрытого текста один</a>
    <div class="myViewPost" id="div1">
    Сдесь содержится текст который показывается и скрывается</div>
    <br />

    <a href="java script://" onClick="toggle('div2');return false;">Блок скрытого текста два</a>
    <div class="myViewPost" id="div2">
    Сдесь содержится текст который показывается и скрывается
    </div>
    Опять таки все нормально работает открывается и закрывается.
    Попробовал соединить funct.php и java.php получилась следующее:
    funct_java.php
    Код (Text):
    <style>
    .myViewLinks { display: none; }
    </style>

    <script language="JavaScript">
    // Обворачиваем функцию toggle в локальное замыкание:
    var toggle = function() {
    // Ссылка на текущий(current) открытый 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>



    <?php
    require_once("config.php");

    mysql_query ("set character_set_client='cp1251'");
    mysql_query ("set character_set_results='cp1251'");
    mysql_query ("set collation_connection='cp1251_general_ci'");

    function gettable($tablename) //функция которая осуществляет чтение записи в таблице выводит ее на экран
    {
    //результирующий набор данных хранится в переменной $sql
    $sql = mysql_query("SELECT * FROM $tablename");
    $i = 0;
    while ($tablerows = mysql_fetch_row($sql))
    {
    $i=$i+1;
    echo("
    $tablerows[1]
    <a href="$i" onClick="toggle('$tablerows[2]');return false;">$tablerows[2]</a>
    <div class="myViewLinks" id="$tablerows[2]">
    <br>
    $tablerows[3]
    <br>
    </div>
    ");
    }
    }
    ?>
    соответственно переделываем
    index.php:
    Код (Text):
    <?php
    require_once("funct_java.php");
    gettable(ben);
    ?>
    Вместо списка который мне нужно получить я получаю пустую страницу. помогите пожалуйста соединить эти два скрипта.
    PS. Простите что так много текста просто хотел как можно подробнее описать все.
     
Загрузка...
Похожие Темы - Помогите соединить Php
  1. limbra
    Ответов:
    3
    Просмотров:
    44
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    97
  3. Ruska132
    Ответов:
    34
    Просмотров:
    263
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    145
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    61

Поделиться этой страницей