2017-04-13 15 views
1

私はプロジェクトでブートグリッドテーブルを使用していますが、アカウントの種類によっては特定の列のみを表示したいだけです。条件に応じてPHPがデータを可視に表示

私が撮りたかったアプローチは、if文でPHPを使用することです:

ACCOUNT_TYPE = "担当者" が "偽" = ID番号名称データ-見えるよう

<th data-column-id="name" data-visible="true">Name</th> 

    if($_SESSION['account_type'] === 'Rep') { 
    echo '$("#name").attr("data-visible", "false");'; 
    } 

ができ、このされている場合はPHPを使用するか、jQueryを使用する必要がありますか?
jQueryを使用している場合、これは安全な権利ではありませんか?

私は初心者ですから、私は最も簡単な解決策を見つけようとしています。

+0

これでうまくいくはずです。しかし、JS –

+0

の周りにスクリプトタグがありませんスクリプトタグを囲む正しい構文は何ですか? echo ' '; ? – JD6969

+0

これは正しいです –

答えて

1

最も効率的なやり方は、隠された要素に値を保持することです。また、JavaScriptで使用します。

<th data-column-id="name" data-visible="true">Name<input type='hidden' name='account_type' id='account_type' value='<?=$_SESSION['account_type']?>'></th> 

その後

<script> 
$(function(){ 
var account_type=$('#account_type').val(); 
    if(account_type === 'Rep') { 
    $("#name").attr("data-visible", "false"); 
    } 
}); 
</script> 
0

if文内この解決策を試してください。それが役に立てば幸い!

echo "<script type='text/javascript'>$('#name').prop('data-visible', 'false');</script>"; 
1

これはPHPで可能ですか私はjQueryのを使用する必要がありますか?
jQueryを使用している場合、これは安全な権利ではありませんか?

あなたはPHP側でaccount_typeを比較することができたら...

なぜちょうど(埋めるかどうか)を埋めるためにtdコンテンツを、それを使わないのでしょうか?

if($_SESSION['account_type'] === 'Rep') { 
    <th data-column-id="name">Name</th> 
}else{ 
    <th data-column-id="name"></th> // Empty! 
} 

それが安全である必要がある場合...最良の方法は、情報を送信することはありません。
列全体を送信することさえできません!
これをすべての行のtdにも適用してください。

hidden inputは、コンソールで見つけられ、スクリプトによって「スニッフィング」されます。

+1

これは行く方法です! –

0

スクリプト、CSS、およびPHPファイルを別のページに追加しようとします。

関連する問題