PHP select 来自 dc.selectMenu 根据客户的电子邮件地址

PHP select from dc.selectMenu according to email address of client

我有一个具有 OAuth 和 Google 登录的网站。

我想做的是 select 来自 select 客户进入网站时的菜单。所以每个客户都会根据他们的电子邮件地址看到不同的过滤页面。

我已经可以创建会话并在屏幕上写下客户名称。

 <?php if ($_SESSION["email"] == "xxx@gmail.com") { ?> 
      <h2>Thank you <?php echo $_SESSION["name"] ?> </h2>
        <?php }   ?>

我在下面的 select 菜单中包含维度国家/地区值,例如 ( a,b,c,d,e ) 我想当电子邮件地址 xxx 登录时 he/she 只能看到一个国家,而当 yyy 电子邮件地址登录 he/she 时只能看到 b 国家,依此类推...

函数必须 select 自动显示在屏幕上。


selectField = dc.selectMenu('#country')
                        .dimension(mostSold)
                        .title(function (d) { return d.key })
                        .promptText('Which country')
                        .group(mostSoldGroup)

到目前为止,我找到了以下方法,但它不起作用并报错。

  <?php if ($_SESSION["email"] == "xxx@gmail.com") { ?> 
      <?php selectField.replaceFilter([["a"]]).redrawGroup(); ?>
        <?php }   ?>

正如@Gordon 和@FunkFortyNiner 所解释的,您正在混合使用两种不同的语言(PHP 和 js)。

为了更简单,开始限制需要在 php 和 js 之间移动多少东西,方法是(在 php 中)编写一个 js 变量,稍后您可以在 php 中读取该变量=20=] js代码

 <?php 
 if ($_SESSION["email"] == "xxx@gmail.com") {  
   echo "Thank you ".$_SESSION["name"];
   echo "<script>var countryFilter='a';</script>";
 } 
 ?>

并在您的页面下方(或更好的单独 js 文件)

 <script>

 selectField = dc.selectMenu('#country')
                    .dimension(mostSold)
                    .title(function (d) { return d.key })
                    .promptText('Which country')
                    .group(mostSoldGroup)

  if (countryFilter) 
    selectField.replaceFilter([[countryFilter]]);

 </script>

一般建议:避免混合使用不同的语言 (php+html+js):它更难阅读,更容易编写不安全的代码。