2017-02-02 18 views
-2

POST変数が定義されていない場合、alert()(javascript)のような関数をPHPに組み込みます。しかし、私はそれがポーズをとっていればいいのではない。PHPの__constructにJavascript関数を実行する方法

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; } 

} 
+0

変更 '場合(ISSET($ _ POST [ 'nomb']))'と 'の場合(!のISSET($ _ POST [ 'nomb']))' –

+1

あなたが直接することはできません。あなたはあなたのAJAXコール(AJAXと仮定)でこれを処理する必要があります – Farkie

+0

@ Farkieなぜですか?彼が通常のPOST要求(ajaxなし)を使用している場合、それは動作します。 –

答えて

0

あなたが求めていることは、あなたには良いことではありません。あなたはあなたの目標を達成する方法について異なって考えなければなりません。

phpは1ミリ秒未満でスクリプトを実行します。サーバー上にあり、クライアントが要求を出したときにのみ動作します。

Javascriptは、これは、クライアントのコンピュータ上で動作します。イベント(マウスクリック、押されたタイマー、...)を常に待ちます。

イベント処理にはjavascriptを使用する必要があります。 PHPが動的にjavascriptコード(あなたの場合は警告)を生成する理由はありません。 いいえ、アラートがjavascriptコード内にあることを確認してください。次に、javascriptにその関数を呼び出させます。

あなたは何ができるか、サーバーから結果を取得しており、その結果に応じて、あなたはjavascriptのは、その(または他の)を呼び出すように決定させjavascript関数。 これはAJAXのことです。

jQueryをご存知ですか?

ここは例です。 「ajax.php」が1時間を印刷するとしましょう。

<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> 
関連する問題