【问题标题】:Display input fields only if ID exists in database仅当 ID 存在于数据库中时才显示输入字段
【发布时间】:2020-05-20 07:32:03
【问题描述】:

我正在尝试创建一个 PHP 表单,我在其中要求输入客户 ID。如果 ID 存在,那么我允许用户填写有关客户的更多详细信息,例如他的电话号码、地址等。如果 ID 不存在,我会发出警报说不存在这样的客户 ID。

我尝试了以下代码,但没有任何成果。

<style>
#hidden {
    display: none;
}
</style>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
  <input type="text" name="cust_id">
  <input type="submit" value="Add details" name="check_cust">

  <div id="hidden">
          <input type="tel" name="phone">
  </div>
</form>

<?php
if(isset($_POST['check_cust'])) 
{
    $id = $_POST['cust_id']
    if(idExistsInDatabase($id))
    {
    const obj = document.getElementById('hidden');
    obj.style.display = 'block';
    }
}

当我执行上面的代码时,我得到以下错误:-

Uncaught TypeError: Cannot read property 'style' of null

我是网络开发的新手,希望能提供任何帮助。提前致谢

编辑:没关系。我是用 AJAX 做的。

【问题讨论】:

  • 不能这样随意混用 PHP 和 JS 代码。 PHP 运行在服务器上,JS 运行在浏览器上。基本思想是检查表单提供了哪些$_POST 数据,然后相应地显示HTML(通过回显与否)。您也可以删除表单的action;如果您省略它,表单会将数据“发送给它自己”。
  • @ChrisG,我现在知道我不能混合 PHP 和 JS 代码。那么,我该如何解决这个问题呢?
  • 这是示例代码:pastebin.com/Q4jmhSC3(请注意,您可能应该使用session,这样您就不必在隐藏输入中继续传递以前的数据;无论如何,这主要是关于条件输出)

标签: javascript php html mysql


【解决方案1】:

您在 PHP 中使用 JS 代码。你不能那样用。

你可以在 PHP 的 echo 中使用脚本标签。例如,

 echo "<script type='text/javascript'>alert('JavaScript code!');</script>";

现在让你的工作改变你嵌套的部分,如果像下面这样给出:

if(idExistsInDatabase($id))
{
    echo "<script type='text/javascript'>document.getElementById('hidden').style.display = 'block';</script>";
}

上面的代码应该可以为你完成这项工作。

【讨论】:

  • 我尝试了上面的解决方案,得到了错误'add_cust_details.php:83 Uncaught TypeError: Cannot read property 'style' of null'。
  • 这是个坏主意,不是 OP 问题的答案
  • @ChrisG,你能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多