gpt4 book ai didi

javascript - 在 php 中使用 mysql 枚举和 javascript 显示和隐藏元素?

转载 作者:行者123 更新时间:2023-11-29 12:57:17 25 4
gpt4 key购买 nike

我试图根据 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>";
}

任何帮助都会很棒。

最佳答案

尝试将生成 javascriptphp 代码放在 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 后,我会提供一个解决方案:

  1. 将 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);
  2. 如我之前所说,在目标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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com