2016-08-19 7 views
0

ボタンをクリックしたときの表示で、location.hrefを使用してコントローラに渡しています。どのように私はPHPの変数ビューでローカル変数の値をビューからコントローラに渡して、別のビューでphp変数として使用する方法

としてそれを使用するためにのlocalStorage値を渡すことができます。これは、一般的に練習をお勧めしませんが

echo Html::button('Proceed', [ 
    'onclick' => " 
     var dataVal = localStorage.getItem('Customers'); 
     if(dataVal.length > 0) { 
      location.href = '" . Yii::$app->urlManager->createUrl(['customers/orders']) . "'; 
     }else{ 
      alert('Please add some items to order!') 
      return false; 
     }",]); 
+0

php html js soup ...これは維持する絶対的な豚になるだろう。 – Steve

+0

getリクエストでブラウザからクライアント側のデータを送信する限り、あなたのオプションはurlパラメータまたはcookieです。前者はおそらく最高の選択肢です – Steve

+0

詳細を教えてください。 – ASD

答えて

3

、URLに値を連結することが可能である。

location.href = '" . Yii::$app->urlManager->createUrl(['customers/orders']) . "?Customers=' + encodeURIComponent(JSON.stringify(dataVal)); 

今、あなたのPHP側はJSONとしてエンコードされたクエリパラメータCustomersを持っているので、などのデコード:

$Customers = json_decode($_GET['Customers']); 
+0

php変数としてlocalstorageにアクセスする他の方法はありますか? – ASD

+2

それはあなたが何をしているかによってまったく異なります。 PHPはサーバー側の言語です。 JSやブラウザについては何も理解しておらず、何も知らない。サーバーに値を渡すには、明示的に値を使用可能にする必要があります。例えば、「自動」の方法の1つは、クッキーやセッションの使用です。これらはHTTPプロトコルに組み込まれており、両者が理解して送信します。 'localStorage'は純粋なクライアントのものなので、あなたの明示的なコードがなければ、決して電線を越えることはありません。 –

関連する問題