На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> Вызов методов PHP из javascript
    Пробую освойть "Delphi for PHP версия 2".
    Переписываю программу с Delphi 7. Только учусь.

    Подскажите разницу и особенности Events и Javascript Events

    Ниписал отклик событи для Button в Events. В нем вызов метода $this->FillTreeView_1();
    Работает.

    Попробовал реализовать с помощью ButtonView, вот тут знаний и не хватает. В нем Events нет, только Javascript Events

    ExpandedWrap disabled
      <?php
      require_once("vcl/vcl.inc.php");
      //Включаем модули
      require_once("dm.php");
      use_unit("ext/ext.inc.php");
      use_unit("menus.inc.php");
      use_unit("comctrls.inc.php");
      use_unit("imglist.inc.php");
      use_unit("forms.inc.php");
      use_unit("extctrls.inc.php");
      use_unit("stdctrls.inc.php");
       
      //Определяем класс
      class shop_ns extends Page
      {
             public $ExtMsg = null;
             public $il_shop = null;
             public $ButtonView1 = null;
             public $ExtGrid1 = null;
             public $Label2 = null;
             public $Button1 = null;
             public $TreeView1 = null;
             public $Label1 = null;
             function ButtonView1JSClick($sender, $params)
             {
               ?>
                 //Добавьте ваш javascript код здесь
                 tag=event.getTarget().tag;
                 alert("Button Tag ID:" + tag + " clicked");
                 //document.getElementById("Label2").Caption = "tag ok";
                 if (tag == 2)
                 {
                   //alert("run");
                   //Button1Click(sender, params);
                   FillTreeView_1();
                 }
                 <?php
                
             }
       
             function Button1Click($sender, $params)
             {
                $this->FillTreeView_1();
       
             }
       
             function FillTreeView_1()
             {
               global $dm;
       
               //ArrField: array[-1..1] of string = ('b', 'ORG_ID', 'MODEL_ID');
               $arr_field[0] = "ORG_ID";
               $arr_field[1] = "MODEL_ID";
       
               $dm->qry_tv_model->close();
               $dm->qry_tv_model->Active = True;
               $dm->qry_tv_model->first();
               $this->TreeView1->Items = '';
               //settype($p, "TreeNode");
       
               while (!$dm->qry_tv_model->EOF)
               {
                 for ($k = 0; $k <= 1; $k++)
                 {
                   $p = $this->TreeView1->findNodeWithItemID($dm->qry_tv_model->fieldget($arr_field[$k]));
                   if ($p == null)
                   {
                     if ($k == 0)
                     {
                       $p = $this->TreeView1->addNodeToItems($dm->qry_tv_model->fieldget($arr_field[$k]."1"));
                       $p->ItemID = $dm->qry_tv_model->fieldget($arr_field[$k]);
                     }
                     else
                     {
                       $p = $this->TreeView1->findNodeWithItemID($dm->qry_tv_model->fieldget($arr_field[$k-1]));
                       if ($p != null)
                       {
                         $p = $p->addChild($dm->qry_tv_model->fieldget($arr_field[$k]."1"));
                         $p->ItemID = $dm->qry_tv_model->fieldget($arr_field[$k]);
                       }
                     }
                   }
                 }
                 $dm->qry_tv_model->next();
               }
             }
      }
       
      global $application;
       
      global $shop_ns;
       
      //Создаем форму
      $shop_ns=new shop_ns($application);
       
      //Загрузка из файла ресурсов
      $shop_ns->loadResource(__FILE__);
       
      //Показываем форму
      $shop_ns->show();
       
      ?>


    Как можно решить проблему?
    Сообщение отредактировано: ViktorXP -
      Цитата nstur @
      Подскажите разницу и особенности Events и Javascript Events

      Events - это события которые срабатывают на сервере (для их выполнение за частую перегружается вся страничка)
      Javascript - это то что срабатывает на клиенте

      Добавлено
      Цитата nstur @
      Попробовал реализовать с помощью ButtonView, вот тут знаний и не хватает. В нем Events нет, только Javascript Events

      а с какой целью вы решили использовать ButtonView?
        Цель проста - дизайн понравился.
        Может, что-то ни так?
        Посоветуйте ссылочку, чтобы с темой ознакомится...

        Есть еще вопрос:
        В реализациях методов есть $sender, $params
        Что они из себя представляют?

        Где то видел реализацию $params, внутри метода, использовался для передачи значений из блока Javascript в PHP.
        Если это так, поясните и предложите примерчик, как это выглядит в коде...
          одна из технологий это использования ajax
          зайди в папку simples. там есть несколько примеров как использовать в своих проектах эту технологию

          Добавлено
          $sender - если судить по названию то наверное сам объект (хотя я его еще ни разу не использовал. нужно как то будет потеснить на досуге)
          $params - это параметры которые передаются в функцию.
          если ты запускаешь проект из под отладки то ты можешь увидеть какие значения лежат там и сделать соответствующие выводы
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0275 ]   [ 15 queries used ]   [ Generated: 3.05.24, 18:46 GMT ]