передача значений переменных из Javascript в Php

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем TetraHC, 8 июн 2009.

Статус темы:
Закрыта.
  1. TetraHC

    TetraHC Гость

    Всем добрый день! Пишу сайтик http://cabel.skrovla.ru

    Одним из условия заказчика, было реализовать строку подсказки поиска - введите например букву "а" (русскую) в поле поиска кабеля, и вылезет подсказка.
    Собсвенно элемент позиционирован как:

    position:absolute

    Так вот дело в том, что в зависимости от экрана браузера координаты поля ввода меняются. Из можно определить ТОЛЬКО через JAVASCRIPT, что я с успехом делаю. Но вот далее, надо вывести css файл с этими координатами (я делаю это на php), и вот тут вопрос - как передать значения left и top в php? Вариант через GET не прокатит, так как адреса у страницы php нет - это МОДУЛЬ JOOMLA.

    Вопрос - как быть? Код:

    <!--shcode--><pre><code class='java'><?php

    //ОПРЕДЕЛЕНИЕ ПОЛЬЗОВАТЕЛЯ

    $user =&JFactory::getUser();
    $usertype=$user->get('usertype');
    if(($usertype=='Manager') or ($usertype=='Administrator') or ($usertype=='Super Administrator')){
    $manager=1;
    }
    else{
    $manager=0;
    }
    ?>


    //ОПРЕДЕЛЯЕМ РАЗМЕР ЭКРАНА
    <script type="text/javascript">
    function getElementPosition(elemId)
    {
    var elem = document.getElementById(elemId);

    var w = elem.offsetWidth;
    var h = elem.offsetHeight;

    var l = 0;
    var t = 0;

    while (elem)
    {
    l += elem.offsetLeft;
    t += elem.offsetTop;
    elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
    }

    <script language="JavaScript" type="text/javascript" src="./suggest/clienthint.js"></script>

    <div align="center">
    <br>
    <form action="./index.php?option=com_hello&view=hello&task=search" name="myform" method="post">
    <input type=radio name="answer" value="1" checked>поиск везде
    <input type=radio name="answer" value="2">поиск в новом
    <input type=radio name="answer" value="3">поиск в госрезерве<br><br>
    <input type="text" name="mytext" size="40" id="txt4" onkeyup="showHint(this.value)" autocomplete="off">
    <input name="Submit" type=submit value="Искать">
    <br>
    <br>
    <div id="txtHint" align="center" style="width: 263px; height: 0px;"></div>
    </form>
    </div>
    </body>
    pos = getElementPosition("txt4");
    var left = pos.left;
    var top = pos.top;
    var width = pos.width;
    var height = pos.height;
    var x0=left;
    var y0=top+height;
    document.write(
    "Угол левый x0-" + x0 + "[px] y0-" + y0 + "[px] ширина" + width + "[px] Начальные данные top-" + top + " height-" + height + "."
    );
    <style type="text/css" media="screen">
    }
    #txtHint {
    position: absolute;
    <?php
    if($manager!=1){
    echo "left: 719px;";
    echo "top: 316px;";
    }
    else{
    echo "left: 719px;";
    echo "top: 546px;";
    }
    ?>
    background-color: #FFFFFF;
    text-align: left;
    border: 1px solid #000000;
    }
    </style>[/CODE]
    Примечание - строка "<script language="JavaScript" type="text/javascript" src="./suggest/clienthint.js"></script>" отношения к делу не имеет, это javascript для передачи данных технологией AJAX

    Собсвтенно на JAVA мы определяем postion left и top, и надо их вставить вместо текущий фиксированных позиций ( 719px, 316px для обычного юзера и 719px и 546px для менеджера).

    PS Есть вариант отказатся от php и сделать вывод только методом JAVSACSRIPT (documet.write), но я так и смог заставить document.write выводить html код в тело страницы (хотел делать вставки кода типа <input name="name" value="width" type=hidden>)

    test
     
  2. nws

    nws Гость

    >>Есть вариант отказатся от php
    100%
    >>сделать вывод только методом JAVSACSRIPT (documet.write)
    не забывай что есть DOM
    присваивай к классу новые css значения в зависимости от условия google -> javascript innerHtml

    например:

    p{color: red;}

    Jquery:
    //при клике на любой элемент заключенный в тэг <p> менятся css
    $("p").click(function () {
    $(this).css('color','blue');
    })
     
Загрузка...
Статус темы:
Закрыта.

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