如何从HTML表单中获取值

时间:2017-01-16 15:14:59

标签: php html

我的文件 Page.php Insert.php

<html>
  <body>
    <span contenteditable style='border:1px solid#000;display:block;width:99'></span>
    <select><option style=display:none>Select</option><option>Yes</option><option>No</option></select>
    <form action=Insert.php>
      <input type=submit>
    </form>
  </body>
</html>

<?php
  $c=mysqli_connect('localhost','root','','database name');
  $DATETIME="2017-01-16 14:54:06";
  $span="Text inserted.";
  $select="No";
  mysqli_query($c,"insert into`table name`(`column 1 name`,`column 2 name`,`column 3 name`)values('$DATETIME','$span','$select')");
?>

如何使变量$DATETIME$span$select等于:当前日期(例如:2017-01-16 14:54:06),{ {1}}的内容(例如:插入的文字。)和元素<span>中的选定选项(例如:是)?

我正在使用XAMPP和PhPMyAdmin。

2 个答案:

答案 0 :(得分:0)

如上所述,你的选择是在你的表单元素之外,所以要开始它应该是固定的。通常你也会提供一个表单方法(默认为get,但是如果你指定的话IMO会更清楚)。

<html>
  <body>
    <span contenteditable style='border:1px solid#000;display:block;width:99'></span>

    <form action=Insert.php method="post">
        <select>
            <option style=display:none>Select</option>
            <option>Yes</option><option>No</option>
        </select>
        <input type=submit>
    </form>
  </body>
</html>

然后你需要从$ _POST数组中获取数据并对其进行过滤。在您的代码示例中,您使用虚拟变量而不是表单中的任何内容,因此对于下一部分,我只是复制它。

<?php
  // DB connect
  $c=mysqli_connect('localhost','root','','database name');

  // Dummy vars
  $DATETIME="2017-01-16 14:54:06";
  $span="Text inserted.";
  $select="No";

  // Query String examples (extra format for readability)
  $query1 = "insert into`table name`(
        `column 1 name`,
        `column 2 name`,
        `column 3 name`
      ) values (
        '". $DATETIME ."',
        '". $span ."', 
        '". $select ."'
      )";

  $query2 = "insert into`table name`(
        `column 1 name`,
        `column 2 name`,
        `column 3 name`
      ) values (
        '{$DATETIME}',
        '{$span}', 
        '{$select}'
      )";

  // Run Query
  mysqli_query($c, $query);
?>

两个查询字符串示例使用1)连接,2)插值。使用任何一个似乎更容易为您阅读。

答案 1 :(得分:0)

这是一个非常常见的问题,您可以查看this链接以获取基本示例。

无论如何,这是你的解决方案:

首先,您必须重新构建HTML。您必须将表单的所有相关字段放在表单标记中,如下所示:

<html>
    <body>
        <form action="insert.php">
            // Here all your input, select, textarea etc. fields
            <input type="submit" />
        </form>
    </body>
</html>

接下来,您无法在表单中提交<span>的值。请改用<input> - 元素:

<input type="text" />

或查看JavaScript( - &gt; XHR),您可以解决此问题。

然后,您必须在要提交的所有字段中设置name - 属性:

<input type="text" name="myTextField" />
<select name="mySelect">
    ...
</select>

实施此代码后,您可以使用insert.php中的值,如下所示:

$text = $_POST['myTextField'];
$select = $_POST['mySelect'];

提示:在PHP文件中使用echo "<pre>".var_dump($_POST)."</pre>";来检查表单中的值。

使用date()

可以轻松地在PHP中获取当前时间
$datetime = date('Y-m-d h:i:s');

注意: 如果您继续使用此项目并考虑使用此项目,请阅读第一篇this文章,其中介绍了您网站安全问题的基础知识以及this有关危险SQL注入的文章。