【问题标题】:What types to choose on my input form?在我的输入表单上选择什么类型?
【发布时间】:2016-10-11 02:28:27
【问题描述】:

我正在尝试创建一个页面,用户可以在其中将歌曲添加到我的数据库中。我有一些问题。当我尝试它时,ID、专辑名称和 Artiest 已正确添加到我的数据库中,但我只得到 Duur 的值和 Prijs 的 0.00,这不是我试图添加的。

我的代码如下:

<form method="post">
<input type="int(5)" name="ID"> ID <br>
<input type="text" name="Titel">Titel<br>
<input type="text" name="Artiest">Artiest<br>
<input type="varchar(6)" name"Duur">Duur<br>
<input type="decimal(5,2)" name"Prijs">Prijs<br>

<input type="submit">
</form>

<?php

$inputid = $_POST['ID'];
$users_name = $_POST['Titel'];
  $users_email = $_POST['Artiest'];
  $users_website = $_POST['Duur'];
  $users_comment = $_POST['Prijs'];





  $query = "
  INSERT INTO `Album`(`ID`, `Album Titel`, `Artiest`, `Duur`, `Prijs`) VALUES ('$inputid', '$users_name',
        '$users_email', '$users_website', '$users_comment');";

  $result = $conn->query($query);;


  echo "<h2>Thank you for your Comment!</h2>";

  mysql_close($con);

?>

数据库已正确链接,所以这不是问题。 我的数据库结构中的输入类型完全相同。

有人可以帮帮我吗? 提前致谢!

【问题讨论】:

  • varchar 和 decimal 和 int 不是输入类型,这些是数据库表 coloum 类型
  • @Vicky 好的,谢谢,你知道我应该在 html 表单中将它们更改到哪里吗?
  • 使用
  • 您应该避免使用 PHP 的 mysql_* 函数学习或编写新代码。它们已在最新版本中被删除,您的代码将来将无法使用。请阅读Why shouldn't I use mysql_* functions in PHP?,了解为什么以及用什么来替换它们。

标签: php html input types


【解决方案1】:

所有可用输入类型的列表:http://www.w3schools.com/html/html_form_input_types.asp

   <form method="post">

    <!-- Add required attribute if you don't want user to leave it blank  -->

    ID: <input type="text" name="id" required /> <br>
    Title: <input type="text" name="title" required /><br>
    Artist<input type="text" name="artist" required /><br>

    <!-- allow user to enter float values between your choice -->
    Duration: <input type="number" min="0" max="10" step="0.01" name="duration" required /><br>


    Price: <input type="number" min="0" max="999.00" step="0.01" required name="price" /><br>

    <input type="submit">
</form>


    <?php

    $id = $_POST['id'];
    $title = $_POST['title'];
    $artist = $_POST['artist'];
    $duration = $_POST['duration'];
    $price = $_POST['price'];

    $query = "INSERT INTO `Album`(`ID`, `Album Titel`, `Artiest`, `Duur`, `Prijs`) VALUES ('$id', '$title',
            '$artist', '$duration', '$price');";

      $result = $conn->query($query);;


      echo "<h2>Thank you for your Comment!</h2>";

      mysql_close($con);

更新:您忘记在最后两个输入字段的名称中输入“=”符号,这就是他们没有得到 POSTED 的原因。

我已经编辑了我原来的答案。

这是我尝试过的代码的编辑版本:

<form method="post">

        <!-- Add required attribute if you don't want user to leave it blank  -->

        ID: <input type="text" name="id" required /> <br>
        Title: <input type="text" name="title" required /><br>
        Artist<input type="text" name="artist" required /><br>

        <!-- allow user to enter max 6 characters -->
        Duration: <input type="number" min="0" max="10" step="0.01" name="duration" required /><br>

        <!-- allow user to enter float values between your choice -->
        Price: <input type="number" min="0" max="999.00" step="0.01" required name="price" /><br>

        <input type="submit">
    </form>

    <?php
      print_r( $_POST );


    ?>

这给了我这个输出

如果您是编程新手,那么请使用一些适当的变量名,以便其他人可以更好地理解您的代码

希望这能解决您的问题。

【讨论】:

  • 首先,感谢您的帮助。我觉得它很接近。但不幸的是,我仍然遇到同样的问题。 Duur 没有任何值,无论我输入什么,该值始终为 0.00 voor Prijs。稍微澄清一下。 Duur 表示持续时间,所以我想要一张专辑的长度,例如 33:45,这意味着 33 分 45 秒。 Prijs 的意思是价格,我想要一个带有 2 位小数的十进制值,例如 7.99
【解决方案2】:

HTML 只有以下输入类型http://www.w3schools.com/htmL/html_form_input_types.asp。您必须仅在数据库中而不是在 HTML 中维护严格的数据类型。对于 HTML,请使用上面列出的输入类型之一。

<input type="number" name="ID"> ID <br>
<input type="text" name="Titel">Titel<br>
<input type="text" name="Artiest">Artiest<br>
<input type="number" name"Duur">Duur<br>
<input type="number" name"Prijs">Prijs<br>

【讨论】:

  • text is not supported in number he want varchar name"Duur" 应该是 name="Duur"
猜你喜欢
  • 2020-08-15
  • 2011-03-05
  • 2016-11-30
  • 2018-02-05
  • 2020-11-11
  • 1970-01-01
  • 2015-12-29
  • 2015-11-05
  • 2013-08-15
相关资源
最近更新 更多