php - 单击文本后如何将值放入变量中
问题描述
我正在尝试使用 HTML、CSS 和 PHP 制作表单。
这个想法是从 Dropbox 中选择一个选项,然后在日历上选择一天。
但是,我不知道如何通过单击一天将值发送到 php 中的变量。
使用变量中的值,我将其插入数据库。
这是我的代码:
<form action="insert.php" method="POST">
<div class="from-group mb-3">
<label for="">Select an option:</label>
<select name="name" class="form-control">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
</select>
</div>
<div id="main">
<table style="width:25%">
<tr>
<td></td>
<td><a href="12.php"><i class="fas fa-chevron-left"></i></a></td>
<td colspan="2">January</td>
<td><a href="2.php"><i class="fas fa-chevron-right"></i></a></td>
</tr>
<tr>
<td>Sun</td>
<td>Mon</td>
<td>Tue</td>
<td>Wen</td>
<td>Thu</td>
<td>Fri</td>
<td>Sat⠀</td>
</tr>
<tr>
<td class="gray">27</td>
<td class="gray">28</td>
<td class="gray">29</td>
<td class="gray">30</td>
<td class="gray">31</td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
<tr>
<td>10</td>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
<td>15</td>
<td>16</td>
</tr>
<tr>
<td>17</td>
<td>18</td>
<td>19</td>
<td>20</td>
<td>21</td>
<td>22</td>
<td>23</td>
</tr>
<tr>
<td>24</td>
<td>25</td>
<td>26</td>
<td>27</td>
<td>28</td>
<td>29</td>
<td>30</td>
</tr>
<tr>
<td>31</td>
<td class="gray">1</td>
<td class="gray">2</td>
<td class="gray">3</td>
<td class="gray">4</td>
<td class="gray">5</td>
<td class="gray">6</td>
<td></td>
</tr>
</table>
</div>
<div class="from-group mb-3">
<button type="submit" name="save_select" class="btn btn-primary">Save</button>
</div>
这是我的PHP代码:
<?php
session_start();
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'calendar');
$con = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
$name = $_POST['name'];
$day = $_POST['day'];
$query = "INSERT INTO ferias (name, day, year, month, week, dateferia, recordtype, time)
VALUES ('$name', '$day', '123', '1', '1', '2021-01-01', '6', '1')";
$query_run = mysqli_query($con, $query);
if($query_run){
$_SESSION['status'] = "inserted successfully";
header("Location: ../1.php");
}
else
{
$_SESSION['status'] = "not inserted";
header("Location: ../1.php");
}
我有一个名为 $day 的变量,因此,例如,当我单击数字 1 时,我希望这个值转到变量中。
有人知道该怎么做吗?
解决方案
如果你想要日期,你可以使用输入type=date
,你在这里做得很复杂。
<form action="insert.php" method="POST" name='myform'>
<div class="from-group mb-3">
<label for="">Select an option:</label>
<select name="name" class="form-control">
<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>
</select>
</div>
<div id="main">
<input type="date" name="day">
<button type="submit" name="submit"> Submit </button>
</div>
</form>
这将以insert.php
格式发布数据{ name=option1, day=2021-09-07}
现在你可以做一些调整day
<?php
session_start();
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'calendar');
$con = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
$name = $_POST['name'];
$date = $_POST['day'];
$newday = explode("-", $date);
$day = $newday[2];// in the array {2021,09,07}
echo $day;// for debugging....
// Continue you code here.....
这是我的做法,如果您真的想在单击该数字时提交表单,只需onclick
在每天添加事件即可。
<td onclick="document.forms['myform'].submit()">3</td>
<td onclick="document.forms['myform'].submit()">4</td>
<td onclick="document.forms['myform'].submit()">5</td>
<td onclick="document.forms['myform'].submit()">6</td>
<td onclick="document.forms['myform'].submit()">7</td>
<td onclick="document.forms['myform'].submit()">8</td>
<td onclick="document.forms['myform'].submit()">9</td>
这是最简单的方法,但我仍然不知道如何将它发布到数据day
变量中post
推荐阅读
- python - sqlite3.OperationalError: near "t": syntax error 是什么意思
- reactjs - Redux 在按钮单击后没有很快更新-Redux,Reactjs
- jestjs - 笑话:其中没有 .test 或 .spec 的文件名
- java - Spring - 如何将组件从另一个模块注入到 SpringBoot 应用程序中
- c# - C#慢递归方法
- matlab - 双积分 - Matlab
- javascript - Javascript解决不做预期的事情
- python - 在 python 中删除一个列表,getsizeof() 非零?
- java - Java 导入 com.sun.prism.Graphics
- r - 把 grepl 变成一个函数