Javascript PHP根据客户端的电子邮件地址从dc.selectMenu中选择

Javascript PHP根据客户端的电子邮件地址从dc.selectMenu中选择,javascript,php,session,oauth,dc.js,Javascript,Php,Session,Oauth,Dc.js,我有一个网站,其中有OAuth和谷歌登录 当客户端进入站点时,我想做的是从selectmenu中选择。因此,每个客户都会根据他们的电子邮件地址看到不同的过滤页面 我已经可以创建一个会话并在屏幕上写入客户端名称 <?php if ($_SESSION["email"] == "xxx@gmail.com") { ?> <h2>Thank you <?php echo $_SESSION["name"] ?> </h2>

我有一个网站,其中有OAuth和谷歌登录

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

我已经可以创建一个会话并在屏幕上写入客户端名称

 <?php if ($_SESSION["email"] == "xxx@gmail.com") { ?> 
      <h2>Thank you <?php echo $_SESSION["name"] ?> </h2>
        <?php }   ?>
到目前为止,我发现下面的方法,但它不工作,并给出错误

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

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

为了让它更简单,开始限制需要在php和js之间移动多少内容,方法是(在php中)编写一个js变量,然后在“干净”的js代码中读取该变量


“但是它不起作用并且会出错。”-到底是什么?你把js和php混在一起了;你不能那样做。我不确定以重复的方式结束这个问题是否正确。但是@FunkFortyNiner是正确的,您不能混合使用PHP和JS,因为PHP将在客户端(浏览器)上执行任何JS之前在服务器上执行。您可以使用PHP有条件地生成一些JS代码,或初始化一些JS变量,以完成您想要的任务。@Gordon谢谢您在这里ping我Gordon。我选择了第一个作为原始副本,并添加了一些。第一个没有回答这个问题吗?请帮助我理解:)如果我做错了,我会重新开始。@FunkFortyNiner,我认为这个问题没有关系。querent试图理解如何基于PHP页面生成过程中已知的某些状态初始化JavaScript库。因此,问题在于如何在PHP中生成正确的JS代码。我认为这样做的目的是在PHP表达式计算为true时有条件地包含JS行。我对PHP的了解还不足以回答这个问题。你好@Xavier。那个代码工作得很好!!。谢谢你。但现在,当我单击Reset All(a href=“javascript:dc.filterAll();)时所有其他国家/地区的值再次出现在屏幕上。因此,当涉及到为每个客户端提供查看不同过滤器的权限时,我想我需要从数据库中处理它?如果您知道关于此主题的其他方法,我将研究它们。在经过一些研究之后,是否可以使用PHP进行csv文件操作?我的意思是在获得csv后数据输入(d3.csv,“example.csv”)在制作所有dimension stuff之前,我可以根据每个客户端筛选此csv文件吗?这些是单独的问题,请作为新问题提问。但是如果您试图在js端实现特权访问,您就走错了方向,因为无论应用什么筛选,他们仍然会下载csv中的完整列表d以后
  <?php if ($_SESSION["email"] == "xxx@gmail.com") { ?> 
      <?php selectField.replaceFilter([["a"]]).redrawGroup(); ?>
        <?php }   ?>
 <?php 
 if ($_SESSION["email"] == "xxx@gmail.com") {  
   echo "Thank you ".$_SESSION["name"];
   echo "<script>var countryFilter='a';</script>";
 } 
 ?>
 <script>

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

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

 </script>