我如何在PHP __construct中执行Javascript函数

时间:2017-02-02 09:11:26

标签: javascript php

好吧,当POST变量没有定义时,我想将类似alert()(javascript)的函数调用到类构造PHP中。但如果它是可行的,我不会不这样做。

class Su{

    private $nomb;
    private $dir;
    private $tel;

    public function __CONSTRUCT($mode){
        try {
            if(isset($_POST['nomb'])) {
                ?>
                <script language="javascript">alert("Sorry, this field can't be empty ")</script>
                <?php
                throw new Exception('?view=sucursal&mode=' . $mode . '&error=define');
            }
        } catch(Exception $error) {
            header('location: '.$error->getMessage());
            exit;
        }
        $this->nomb = strtoupper($_POST['nomb']);
        $this->dir = strtoupper($_POST['dir']);
        $this->tel = strtoupper($_POST['tel']);
    }

    public function __GET($var){ return $this->$var; }
    public function __SET($var, $valor){ return $this->$var = $valor; }

}

1 个答案:

答案 0 :(得分:0)

你所要求的,不是什么对你有好处。你应该对如何实现目标有不同的看法。

php在不到1毫秒的时间内执行脚本。它位于服务器上,仅在客户端发出请求时才有效。

Javascript与众不同。它适用于客户端的计算机;它经常等待事件(鼠标点击,按下按键,定时器......)。

您应该使用javascript进行事件处理。 PHP没有理由动态生成javascript代码(在您的情况下是警报)。 不,您确保警报已经在javascript代码中,在某些功能中。然后你让javascript调用该函数。

你可以做什么,是从服务器获得结果,并根据结果你让javascript决定调用那个(或另一个)javascript函数。 这就是AJAX的意思。

你知道并使用jQuery吗?

这是一个例子。假设“ajax.php”打印当天的小时。

<div id="welcome"></div>
<script>
  $.ajax({
    url: 'ajax.php',
    success: function(output) {
      var hour = Number(output);
      if(hour < 11) {
        good_morning();
      }
      if(hour >= 11 && hour < 14) {
        good_day();
      }
      if(hour >= 14 && hour < 18) {
        good_afternoon();
      }
      // etcetera  ...
    }
  });
  function good_morning() {
    $('#welcome').html('Good morning, what a loverly day ...');
  }
  function good_day() {
    $('#welcome').html('Good Day, ...');
  }
  // etcetera  ...
</script>