我有一个具有 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/