javascript - PHP根据客户端的邮件地址从dc.selectMenu中选择

标签 javascript php session oauth dc.js

我有一个具有 OAuth 和 Google Sign-In 的网站。

我想做的是在客户进入站点时从选择菜单中进行选择。因此每个客户都会根据他们的电子邮件地址看到不同的过滤页面。

我已经可以创建一个 session 并在屏幕上写下客户名称。

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

我在 selectMenu 下面有维度国家值,如 ( a,b,c,d,e ) 我想当电子邮件地址 xxx 登录时,他/她只能看到一个国家,而当 yyy 电子邮件地址登录时,他/她只能看到 b 国家,依此类推......

函数必须自动选择并显示在屏幕上。


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 变量,然后您可以稍后在“干净”的 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):它更难阅读,而且更容易编写不安全的代码。

关于javascript - PHP根据客户端的邮件地址从dc.selectMenu中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58893074/

相关文章:

javascript - 有没有内置的方法来反向使用 JQuery 的 .each() ?

php - $_SESSION 变量在 $GLOBALS 中不可见

php - 如何解决 session_register() 已弃用的问题?

session - Rails 4 跨子域共享 session

javascript - ASP session 超时警告的可靠性

php - 页面加载后javascript函数不工作

javascript - React-router 不显示组件

javascript - 如何使用codeigniter框架打印PHP中模态内的内容

php - money_format() 选项

c# - session 已终止但页面即将到来