我在输入字段中有一个文本月,日和年,我想将其转换为稍后将插入MySQL表中“日期”字段的日期。
HTML输入字段的文字月,日和年:“2014年8月25日”。
PHP:
$time_cell_row = 1;
$time_cell_column = 1;
echo "<form name='timesubmit" . $time_cell_row . "' action='enter_time.php?action=timesubmit" .$time_cell_row . "' method='post'>";
$todays_date = strtotime("today"); //
$FormattedCurrDate = date('M d, Y', $todays_date); // Converts to "Aug 25, 2014"
echo "<th><input name=daycell1 type=text value=" . $FormattedCurrDate . "<disabled /></th>";
// The above echo statement displays "Aug" in a table cell instead of "Aug 25, 2014"
echo "<td><input name=submit_time" . $time_cell_row . $time_cell_column . " type=submit></input></td>";
echo "</form></tr>";
$date1 = $_POST['daycell1']; // null
echo "Date from input field: " . $date1; // Nothing is displayed from $date1 since is null
echo "<br>";
为什么$ _POST ['daycell1']显示为空而不是放入“2014年8月25日”?
答案 0 :(得分:2)
当然,$date1
是null
,因为您尚未提交表单,因此$_POST['daycell1']
在首次加载时仍未定义。
<input />
标记是无效标记,它们没有结束标记。如果您希望它们包含值,请使用value=""
属性。
请勿使用disabled
属性。具有disabled
属性的所有输入标记都不会包含在$_POST
中。请改用readonly
。
// defaults to current day
$FormattedCurrDate = date('M d, Y');
echo '<form method="POST">';
echo '<table><tr>';
echo "<th><input name='daycell1' type='hidden' value='$FormattedCurrDate' /></th>";
echo '<td><input type="submit" name="submit" /></td>';
echo '</tr></table>';
echo '</form>';
// if submit button is pressed
if(isset($_POST['submit'])) {
$date = $_POST['daycell1']; // assign the hidden tag value to variable
echo $date;
}
日期被截断,因为您错过了收尾报价。
echo "<th><input name=daycell1 type=text value='" . $FormattedCurrDate . "' /></th>";
// ^ quotes ^ quotes
旁注:始终在开发时启用错误报告。
error_reporting(E_ALL);
ini_set('display_errors', '1');