За последние 24 часа нас посетил 16791 программист и 1641 робот. Сейчас ищет 961 программист ...

Передача переменной функцией

Тема в разделе "JavaScript и AJAX", создана пользователем goodhash, 28 мар 2011.

  1. goodhash

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

    С нами с:
    10 фев 2011
    Сообщения:
    7
    Симпатии:
    0
    Всем привет!
    С JS знаком на 0%. :oops:
    В зависимости от выбранного типа практики и группы показывать возможные базы практики - вот что делает скрипт.

    Функция doload посылает выбранную в селекте переменную tip_pract_id в файл select_base.php в зависимости от этой переменной и переменной $groups_id в файле select_base.php формируется результат и отсылается обратно.
    Как передать переменную $groups_id функцией doload в файл select_base.php я не знаю - помогите пожалуйста.

    ПЕРВЫЙ ФАЙЛ
    Код (Text):
    1.  
    2. <?php
    3. include('blocks/db.php');
    4. ?>
    5. <script src="JsHttpRequest.js"></script>
    6. <script>
    7. function doload(value){
    8. var req=new JsHttpRequest();
    9. req.onreadystatechange=function(){
    10. if(req.readyState==4) document.getElementById("result").innerHTML=req.responseText;}
    11. req.open(null,"select_base.php",true);
    12. req.send({tip_pract_id:value});}
    13. </script>
    14. <?
    15. $groups_id = 1;
    16. $s='<p align="center">Выберите тип практики       
    17. <select name="tip_pract_id" onchange="doload(this.value);"><option value="no" selected>Выберите тип практики...</option><p/>';
    18. unset($result);
    19. $result=mysql_query("SELECT * FROM tip_pract",$db);
    20.         $myrow=mysql_fetch_array($result);
    21.         do
    22.         {$tip_pract_id = $myrow["id"];
    23.         $s=$s.'<option value="'.$tip_pract_id.'">'.$myrow["tip_pract_name"].'</option>';
    24.         }
    25.         while ($myrow=mysql_fetch_array($result));
    26. $s=$s.'</select><div id="result"></div>';
    27. echo $s;   
    28. ?>
    ФАЙЛ select_base.php
    Код (Text):
    1.  
    2. <?
    3. include('blocks/db.php');
    4.  
    5. require("../JsHttpRequest.php"); //Подключаем библиотеку
    6. $JsHttpRequest=new JsHttpRequest("utf-8"); //Создаем экземпляр класса, указываю рабочую кодировку.
    7. $tip_pract_id=($_REQUEST["tip_pract_id"]);
    8. $s=$s.'<p align="center">Выберите базу практики      
    9. <select name="org_id"><option value="no" selected>Выберите базу практики...</option><p/>';
    10. unset($result);
    11. $result=mysql_query("SELECT organization.id, org_name
    12. FROM organization, dogovor, punct_dogovor, punct_tip_pract
    13. WHERE organization.id = dogovor.organization_id
    14. AND dogovor.id = punct_dogovor.dogovor_id
    15. AND punct_dogovor.specialnost_id =           <------------вот суда мне и нужно подставить переменную $specialnost_id
    16. AND punct_dogovor.id = punct_tip_pract.punct_dogovor_id
    17. AND punct_tip_pract.tip_pract_id ='$tip_pract_id'",$db);
    18.         $myrow=mysql_fetch_array($result);
    19.         do
    20.         {$org_id = $myrow["id"];
    21.         $s=$s.'<option value="'.$org_id.'">'.$myrow["org_name"].'</option>';
    22.         }
    23.         while ($myrow=mysql_fetch_array($result));
    24. $s=$s.'</select>';
    25.  
    26. //В общем-то, все. Теперь просто выводим переменную $s, которую успешно "поймает" наша функция doload().
    27.  
    28. echo $s;
    29. ?>
     
  2. goodhash

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

    С нами с:
    10 фев 2011
    Сообщения:
    7
    Симпатии:
    0
    нуу кто-нибуудь-(
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну например так
    req.open(null,"select_base.php?groups_id=<?php echo $groups_id; >?",true);
     
  4. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    igordata
    не правильный ответ :) для этой старой либы такое срабатывает только для Гет-запросов.

    req.send({tip_pract_id:value, groups_id:6});

    а вообще ТС пора бы сходить на форум авторов этой библиотеки - там куча мана и толковые "помогатели" :)
    я уже и забыл как ей пользоваться [​IMG]
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если б еще понять что требуется...
     
  6. goodhash

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

    С нами с:
    10 фев 2011
    Сообщения:
    7
    Симпатии:
    0
    Вот этот вариант подходит, только переменная groups_id меняется:

    $groups_id = $_GET['groups_id'];

    пробовал так:
    req.send({tip_pract_id:value, groups_id:$groups_id});
    не получается.

    Как это сделать?