0

リンクがあり、それをクリックすると、関数が呼び出されます。その関数では、href 属性を設定して id 変数を渡します。href 値を警告すると、ID とともに正しい URL が表示されます。しかし、コントローラーの対応する関数で、その変数 Id の $_GET を実行すると、値が取得されません。エラーは何ですか?

これは私のリンクです:

<a href="http://localhost/FormBuilder/reports/export?height=220&width=350" id="export_entries" class="thickbox button" title= "Export" >Export</a>  

対応するオンクリック機能:

$("#export_entries").click(function() {
    $(this).attr("href",$(this).attr("href")+"&id="+formid);
    alert($(this).attr("href"));
});

このアラート ボックスで、2 番目のリンクをクリックすると、値が次のように取得されます。

 http://localhost/FormBuilder/reports/export?height=220&width=350&id=2

しかし、コントローラーのエクスポート機能では、値を取得できません。変数 formid は空です。

function export()
   {

        $formid=$_GET['id'];
        echo " formid: ".$formid;
        $this->set('formid',$formid);
   }
4

3 に答える 3

1

おそらく発生しているのは、href 属性を変更したことですが、アンカー要素のクリックを処理しているため、ブラウザーは変更されていない古い URL にリダイレクトされます。

location.hrefを使用して、パラメーターを追加して URL 文字列を作成し、ユーザーを直接リダイレクトすることができます。

$("#export_entries").click(function(e) {
  location.href = $(this).attr("href")+"&id="+formid;
  e.preventDefault();
});
于 2009-08-31T05:32:01.823 に答える
0

CakePHP では、パラメーターは次のように機能します。

http://localhost/FormBuilder/reports/export/height:220/width:350/id:2

それ以外の

http://localhost/FormBuilder/reports/export?height=220&width=350&id=2

コントローラーのパラメーターを取得するには、

$formid = $this->params['id'];

これらは名前付きパラメーターと呼ばれます。参考文献:

http://book.cakephp.org/view/541/名前付きパラメータ

http://bakery.cakephp.org/articles/view/passing-named-parameters

于 2009-08-31T05:35:46.370 に答える