За последние 24 часа нас посетили 17704 программиста и 1658 роботов. Сейчас ищут 960 программистов ...

Вопросы начинающего web кодера :)

Тема в разделе "PHP для новичков", создана пользователем lacost, 11 апр 2008.

  1. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  2. lacost

    lacost Активный пользователь

    С нами с:
    7 апр 2008
    Сообщения:
    57
    Симпатии:
    0
    C mysqli разобрался, спасибо за помошь :)

    Теперь позвольте задать ещё 1 вопрос, мой уровень знаний пока не позволяет мне разобраться в этом вопросе. Итак:
    прочитал
    http://dklab.ru/lib/JsHttpRequest/
    но не совсем понял пример приведенный у них, буду благодарен за разьяснения:



    Код smpl_frontend.php
    HTML:
    1.  
    2. <script src="../../lib/JsHttpRequest/JsHttpRequest.js"></script>
    3. //тут ясно подключатся необходимая библиотека
    4. <script type="text/javascript" language="JavaScript">
    5. function doLoad(value)
    6. //тоже понятно, функция которая вызывается принажатии на кнопку и забирает значение текстового поля
    7.  
    8.    {
    9.     // Create new JsHttpRequest object.
    10.     var req = new JsHttpRequest();   //тоже ясно, новая перменная класса
    11.     // Code automatically called on load finishing.
    12.     req.onreadystatechange = function()   //что ещё за  function() как опнять этот участок кода?
    13.     {
    14.         if (req.readyState ==4)   //почему именно 4?
    15.         {
    16.             // Write result to page element (_RESULT becomes responseJS).
    17.             document.getElementById('result').innerHTML = req.responseJS.md5   //тоже ясно просто забираем значение переменной.
    18.             // Write debug information too (output becomes responseText).
    19.             document.getElementById('debug').innerHTML = req.responseText; //от части тоже понятно, забираем значения текста который веведет наш smpl_backend.php
    20.         }
    21.     }
    22.     // Prepare request object (automatically choose GET or POST).   //Фигу выбирает всегда POST даже если в форме стоит метод Get
    23.     req.open(null, 'smpl_backend.php', true); //от части тоже ясно просто открываем
    24.     // Send data to backend.
    25.     req.send( { xqqqq: value } );  //посылам наше значение в открытый файл
    26. }
    27.  
    28. <form method="GET" >
    29.     Text: <input type="text" name="text" onchange="doLoad(this.form.text.value)">
    30.     <input type="button" value="Calculate MD5"
    31.      onclick="doLoad(this.form.text.value)">
    32. </form>
    33.  
    34. <div id="result" style="border:1px solid #000; padding:2px">
    35.     Structured results
    36. </div>
    37. <div id="debug" style="border:1px dashed red; padding:2px">
    38.     Debug info
    39. </div>
    40.  
    Код 'smpl_backend.php:

    HTML:
    1.  
    2. <?php
    3. // Load JsHttpRequest backend.
    4. require_once "../../lib/JsHttpRequest/JsHttpRequest.php";
    5. // Create main library object. You MUST specify page encoding!
    6. $JsHttpRequest =& new JsHttpRequest("windows-1251");
    7. //от части ясно но не совсем.....создайм переменную $JsHttpRequest класса JsHttpRequest("windows-1251"); ну windows-1251 тут по идее кодировка только не ясно чего?
    8. // Store resulting data in $_RESULT array (will appear in req.responseJs).
    9. $GLOBALS['_RESULT'] = array(    //А вдруг мне хостинг запретит использовать $GLOBALS что тогда? можно как нибудь по другому?
    10.  "q"     => @$_REQUEST['q'],
    11.   "md5"   => md5(@$_REQUEST['q']),
    12. //тут всё ясно присваиваем значения переменным
    13. );
    14. // Below is unparsed stream data (will appear in req.responseText).
    15. ?>
    16.  
    17. <pre>
    18. <b>Request method:</b> <?=$_SERVER['REQUEST_METHOD'] . "\n"?>
    19. <b>Loader used:</b> <?=$JsHttpRequest->LOADER . "\n"?>
    20. <b>_REQUEST:</b> <?=print_r($_REQUEST, 1)?>
    21. //Выводим текст
    22. </pre>
    23.  

    Просьба пояснить мне мои ошибки в понимании этого кодаю
     
  3. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    Эту либу не использую, но попытаюсь ответить.
    JS (как и AS) позволяет вешать на определенное событие функцию, например, на клик мыши по какому-то обьекту:
    HTML:
    1. <button id="el_id">Кликни</button>
    2. <script>document.getElementById('el_id').onclick = function() { alert('Кликнул'); }</script>
    Что за onreadystatechange - гуглить слово "Ajax".

    Опять же гуглить Ajax.

    Тут как-бы всего 2 варианта. Или принятых, или отправляемых данных, наверно, всё же отправляемых.


    Честно говоря, не представляю, почему можно запретить $GLOBALS.

    [upd]
    На сайте есть либы есть очень хороший форум.
     
  4. lacost

    lacost Активный пользователь

    С нами с:
    7 апр 2008
    Сообщения:
    57
    Симпатии:
    0
    http://php.ru/forum/viewtopic.php?t=11680 путаю кислое с солёным?

    Сдесь и правдо гугль помог :)
    State Description
    0 The request is not initialized
    1 The request has been set up
    2 The request has been sent
    3 The request is in process
    4 The request is complete
     
  5. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    Да.
     
  6. lacost

    lacost Активный пользователь

    С нами с:
    7 апр 2008
    Сообщения:
    57
    Симпатии:
    0
    Ещё вопрос
    PHP:
    1.  
    2. $GLOBALS['_RESULT'] = array(
    3.   "q"     => @$_POST['q'],
    4.    "qq"     => @$_POST['qq'],
    5.  // "md5"   => md5(@$_REQUEST['q']),
    6. );

    К его полям я обращаюсь с помощью функции
    req.responseJS.q (чтобы было ясно что такое reg: var req = new JsHttpRequest();)

    Но мне нужно передать массив значений который мне вернёт mysql, а в примере выше показано тоолько как дроставать отдельные значени, обьясните как мне достать массив...никак не придумаю....


    И в догонку ещё вопрос, как сделать так чтобы вся эта красота работала методои Get а не Post? если просто меняю в форме поле mthod="GET" всё равно метод остаётся POST