0

我的 PHP 表单不会发布到数据库中。我对 php 和 mysql 的连接理解得相当好,但我对这个很困惑。当我在表单上点击提交时,它不会回显我(用户)输入的值。日期显示为 1969-12-31,而不是用户提交的日期。如果有人可以提供帮助,那就太好了。我的代码如下

表单代码为:

<form method="POST" action="add_event.php" id="create_event">
<label for="event_name">Event Name:</label>
<input type="text" id="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" type="date" id="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" id="zip_code" maxlength="5"><br />
<label for="description">Description</label>
<textarea id="description" rows="5" columns="10"></textarea>

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

add_event.php 插入代码是:

<?php


require_once '../app_config.php';
require_once '../database_connection.php';
require_once '../authorize.php';

session_start();

// Authorize any user, as long as they're logged in
authorize_user();

//Get the user ID of the user to show
$user_id = $_SESSION['user_id'];

$select_query = "SELECT first_name, last_name FROM users WHERE user_id = " . $user_id;

// Run the query
$result = mysql_query($select_query);
if ($result) {
$row = mysql_fetch_array($result);
$first_name = $row['first_name'];
$last_name = $row['last_name'];
}

$name = $first_name . ' ' . $last_name;
$event_name = trim($_POST['event_name']);
$date = trim($_POST['date']);
$zip_code = trim($_POST['zip_code']);
$description = trim($_POST['description']);

// $date = "2012-08-22";
$newdate = date("Y-m-d", strtotime($date));
// $event_name = "test";
// $zip_code = "22153";
// $description = "test";

$insert_sql = sprintf("INSERT INTO events " .
                              "(name, user_profile_id, event_name, date, zip_code, description) " .
    "VALUES ('%s', %d, '%s', '%s', '%s', '%s');",
         mysql_real_escape_string($name),
         mysql_real_escape_string($user_id),
         mysql_real_escape_string($event_name),
         mysql_real_escape_string($newdate),
         mysql_real_escape_string($zip_code),
         mysql_real_escape_string($description));


//insert the user into the database
mysql_query($insert_sql);

 echo $insert_sql;
?>

非常感谢提前。

4

4 回答 4

2

问题是您没有命名输入字段。如果您将 name 属性添加到 html 代码中的输入,则一旦提交表单,该值将存储在 php 中的 $_POST 数组中。正确的html代码应该是:

<form method="POST" action="add_event.php" id="create_event">
<label for="event_name">Event Name:</label>
<input type="text" name="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" type="date" name="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" name="zip_code" maxlength="5"><br />
<label for="description">Description</label>
<textarea name="description" rows="5" columns="10"></textarea>

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

我不确定您是否需要输入中的 id 用于其他任何内容,否则您应该重新添加它们。有关 html 表单的更多信息,请访问:http ://www.w3schools.com/html/html_forms.asp

于 2013-10-07T16:39:51.510 回答
1

您的表单中不需要一些名称属性吗?

例如:

<input class="datepicker" type="date" id="date" name="date">

并且您的值POST['your_value']必须与 name 属性的值相同。

所以:

$my_date = $_POST['date']
于 2013-10-07T16:37:49.023 回答
1

您没有在表单中包含任何名称属性。应该是这样的:

<label for="event_name">Event Name:</label>
<input type="text" id="event_name" name="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" type="date" id="date"  name="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" id="zip_code" maxlength="5"  name="zip_code"><br />
<label for="description">Description</label>
<textarea id="description" rows="5" columns="10"  name="description"></textarea>

请注意,只有具有 name 属性的表单输入元素才会发送到服务器。ID 仅用于客户端。

于 2013-10-07T16:37:54.760 回答
1

你需要给你的输入元素一个 name 属性...这就是 php 如何使用 $_POST['name attribute'] 全局来识别你所指的字段。

所以例如...

 <form method="POST" action="add_event.php" id="create_event">
<label for="event_name">Event Name:</label>
<input type="text" name="event_name" id="event_name"><br />
<label for="date">Date:</label>
<input class="datepicker" name="date"  type="date" id="date"><br />
<label for="zip_code">Zip Code:</label>
<input type="text" id="zip_code" name="zip_code"  maxlength="5"><br />
<label for="description">Description</label>
<textarea id="description" name="description" rows="5" columns="10"></textarea>

<br>
<input type="submit" name="submit">
</form>
于 2013-10-07T16:41:00.483 回答