作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图根据 mysql 数据库中 ENUM 的值简单地显示和隐藏一个元素。
我正在使用 javascript 和 PHP,但 PHP 中的 javascript 似乎没有或无法选择给定的元素,因为该元素始终显示!
这是我的 php 代码:
if ($sizeSelect != '1') {
echo '<script type="text/javascript">';
echo 'document.getElementById("sizeSelect").style.display = "block"';
echo '</script>';
}else{
echo '<script type="text/javascript">';
echo 'document.getElementById("sizeSelect").style.display = "none"';
echo '</script>';
}
这是我的 HTML 元素:
<select id="sizeSelect" name="sizeSelect">
<option>Small</option>
<option>Large</option>
</select>
我有什么遗漏的吗?
如有任何帮助,我们将不胜感激。
谢谢
附注我已确保我已连接到 mysql 数据库并正确获取 ENUM 值,因此 mysql 连接在这里不是问题。
好吧,我刚刚在我的 html 文件中进行了测试,并将以下代码放在页面顶部,但仍然不起作用,但是当我将相同的代码放在页面底部时,它确实起作用并发生了变化元素的显示为无:
<script language='javascript' type='text/javascript'>
document.getElementById('sizeSelect').style.display = 'none';
</script>
所以,我确实在我的 PHP 文件中使用文档就绪功能尝试了此代码,但仍然无法在 php 文件中工作!
if ($sizeSelect = 1) {
echo "<script language='javascript' type='text/javascript'>";
echo
"$(document).ready(function(){ document.getElementById('sizeSelect').style.display = 'block';});";
echo "</script>";
}else{
echo "<script language='javascript' type='text/javascript'>";
echo "document.getElementById('sizeSelect').style.display = 'none';";
echo "</script>";
}
任何帮助都会很棒。
最佳答案
尝试将生成 javascript 的 php 代码放在 SELECT 标记之后或文件末尾,因为您的 javascript 找不到 DOM 元素 "#sizeSelect",我做了测试,它对我有用。像这样:
<select id="sizeSelect" name="sizeSelect">
<option>Small</option>
<option>Large</option>
</select>
<?php
$sizeSelect = // retrieve sizeSelect value from your database;
if ($sizeSelect != '1') {
echo '<script type="text/javascript">';
echo 'document.getElementById("sizeSelect").style.display = "block"';
echo '</script>';
}else{
echo '<script type="text/javascript">';
echo 'document.getElementById("sizeSelect").style.display = "none"';
echo '</script>';
}
?>
在您指定您正在使用 Smarty 后,我会提供一个解决方案:
将 php 文件中生成的 js 内容连接到字符串变量上,而不是使用 echo,并使用 Smarty 为其赋值分配()
函数
$jsContent= '';
if ($sizeSelect != '1') {
$jsContent.= '<script type="text/javascript">';
$jsContent.= 'document.getElementById("sizeSelect").style.display = "block"';
$jsContent.= '</script>';
}
else{
$jsContent.= '<script type="text/javascript">';
$jsContent.= 'document.getElementById("sizeSelect").style.display = "none"';
$jsContent.= '</script>';
}
$smarty->assign('js', $jsContent);
如我之前所说,在目标select标签之后显示变量内容
<select id="sizeSelect" name="sizeSelect">
<option>Small</option>
<option>Large</option>
</select>
{$js}
关于javascript - 在 php 中使用 mysql 枚举和 javascript 显示和隐藏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23844336/
我是一名优秀的程序员,十分优秀!