我创建了一个HTML表单,并尝试将数据从其字段保存到数据库。输入,下拉菜单和单选按钮正确存储,但textarea始终作为空字段添加到数据库中。这是代码:
HTML:
<head>
<link rel="stylesheet" type="text/css" href="feedback_form_style.css">
</head>
<form name="feedbackform" method="post" class="basic-grey" action="feedback_form_send.php">
<h1>Feedback form
<span>Please answer the questions below.</span>
</h1>
<table width="450px">
</tr>
<tr>
<td valign="top">
<label for="School">School</label>
</td>
<td valign="top">
<input type="text" name="School" placeholder="Name of your school" maxlength="50" size="30" required/> <! required not supported in Safari>
</td>
</tr>
<tr>
<td valign="top">
<label for="Year">Year</label>
</td>
<td valign="top">
<input type="text" name="Year" placeholder="Which year you are" maxlength="50" size="30"/>
</td>
</tr>
<tr>
<td valign="top">
<label for="Gender">Gender</label>
</td>
<td valign="top">
<select name="Gender">
<option value="male"/>Male</option>
<option value="female"/>Female</option>
</select>
</td>
</tr>
</table>
<p></p> <!emptyline>
<table>
<tr>
<td valign="top">
<label for="What do you think and engineer does">What do you think an engineer does? </label>
</td>
</tr>
<tr>
<td valign="top">
<textarea name="What do you think an engineer does" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"/></textarea>
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="What was the most enjoyable part about the visit today?">What was the most enjoyable part about the visit today? </label>
</td>
</tr>
<tr>
<td valign="top">
<textarea name="What was the most enjoyable part about the visit today" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea>
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Was there anything you did not like?">Was there anything you did not like? </label>
</td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="Was there anything you did not like?" value="yes">Yes (plese give details below)
<input type="radio" name="Was there anything you did not like?" value="no">No
</td>
</tr>
<tr>
<td valign="top">
<textarea name="Was there anything you did not like (comment)?" placeholder="Details here" maxlength="1000" cols="60" rows="10"></textarea>
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Would you consider studying Engineering at university?">Would you consider studying Engineering at university? </label>
</td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="Would you consider studying Engineering at university?" value="yes">Yes
<input type="radio" name="Would you consider studying Engineering at university?" value="no">No
<input type="radio" name="Would you consider studying Engineering at university?" value="unsure">Unsure
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Has today's session inspired you to consider becoming an engineer?">Has today's session inspired you to consider becoming an engineer? </label>
</td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="Has today's session inspired you to consider becoming an engineer?" value="yes">Yes
<input type="radio" name="Has today's session inspired you to consider becoming an engineer?" value="no">No
<input type="radio" name="Has today's session inspired you to consider becoming an engineer?" value="unsure">Unsure
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Before today's session did you know much about engineering?">Before today's session did you know much about engineering? </label>
</td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="Before today's session did you know much about engineering?" value="yes">Yes
<input type="radio" name="Before today's session did you know much about engineering?" value="no">No
<input type="radio" name="Before today's session did you know much about engineering?" value="unsure">A little
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Has todays session taught you much about engineering?">Has todays session taught you much about engineering? </label>
</td>
</tr>
<tr>
<td valign="top">
<input type="radio" name="Has todays session taught you much about engineering?" value="yes">Yes
<input type="radio" name="Has todays session taught you much about engineering?" value="no">No
<input type="radio" name="Has todays session taught you much about engineering?" value="unsure">A little
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Based on today's session, what do you think an engineer does?">Based on today's session, what do you think an engineer does? </label>
</td>
</tr>
<tr>
<td valign="top">
<textarea name="Based on today's session, what do you think an engineer does?" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea>
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td valign="top">
<label for="Comments/Suggestions/Questions">Comments/Suggestions/Questions </label>
</td>
</tr>
<tr>
<td valign="top">
<textarea name="Comments/Suggestions/Questions" placeholder="Enter your comments, suggestions and questions here" maxlength="1000" cols="60" rows="10"></textarea>
</td>
</tr>
<tr> <td><p></p></td></tr> <!emptyline>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" class="submit" value="Submit">
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
Thank you for your feedback
</td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
© Girls in Engineering 2015
</td>
</tr>
</table>
</form>
PHP:
$value = test_input($_POST['School']);
$value2 = test_input($_POST['What do you think an engineer does']);
$sql = "INSERT INTO form1 (input1,input2) VALUES ('$value', '$value2')";
if($_POST){
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
print_r的输出($ _ POST):
Array
(
[School] => 123
[Year] =>
[Gender] => male
[What_do_you_think_an_engineer_does] => 234
[What_was_the_most_enjoyable_part_about_the_visit_today] =>
[Was_there_anything_you_did_not_like_(comment)?] =>
[Based_on_today's_session,_what_do_you_think_an_engineer_does?] =>
[Comments/Suggestions/Questions] =>
)
感谢您的帮助。
答案 0 :(得分:1)
在textarea中使用name="Comments"
。因为那是$_POST['Comments']
所链接的。
假设您的代码有
<textarea name="What was the most enjoyable part about the visit today" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea>
您的帖子应为$_POST['What was the most enjoyable part about the visit today']
如果要将注释作为数组传递
<textarea name="Comments[]" placeholder="Your answer here" maxlength="1000" cols="60" rows="10"></textarea>
提示:使用以下代码在feedback_form_send.php页面上进行调试,以检查通过提交后发送给它的值;
if($_POST){
echo '<pre>';
print_r($_POST);
echo '</pre>';
}
EDITED
建议:您的代码容易受到Sql注入攻击。使用PDO或mysqli而不是mysql
EDITED
我的打印件显示值
Array
(
[School] => myschool
[Year] => 2018
[Gender] => male
[What_do_you_think_an_engineer_does] => engineer sleeps
[What_was_the_most_enjoyable_part_about_the_visit_today] => it was nice
[Was_there_anything_you_did_not_like?] => yes
[Was_there_anything_you_did_not_like_(comment)?] => too beutiful
[Would_you_consider_studying_Engineering_at_university?] => yes
[Has_today's_session_inspired_you_to_consider_becoming_an_engineer?] => no
[Before_today's_session_did_you_know_much_about_engineering?] => unsure
[Has_todays_session_taught_you_much_about_engineering?] => yes
[Based_on_today's_session,_what_do_you_think_an_engineer_does?] => engineers do hard work
[Comments/Suggestions/Questions] => no comments, i suggest to do things
)
所以你的php变量应该被分配这样的东西。 这只是一个让它易于理解的演示。在使用
之前,请务必记住清理输入 $school=$_POST['School'];
$year=$_POST['Year'];
$gender=$_POST['Gender'];
$whatengineerdoes=$_POST['What_do_you_think_an_engineer_does'];
$enjoyable_part=$_POST['What_was_the_most_enjoyable_part_about_the_visit_today'];
$youdontlike=$_POST['Was_there_anything_you_did_not_like?'];
$didnotlike=$_POST['Was_there_anything_you_did_not_like_(comment)?'];
$wouldyou=$_POST['Would_you_consider_studying_Engineering_at_university?'];
$session_inspired=$_POST["Has_today's_session_inspired_you_to_consider_becoming_an_engineer?"];
$before_session=$_POST["Before_today's_session_did_you_know_much_about_engineering?"];
$has_taught=$_POST['Has_todays_session_taught_you_much_about_engineering?'];
$based_on=$_POST["Based_on_today's_session,_what_do_you_think_an_engineer_does?"];
$comments=$_POST['Comments/Suggestions/Questions'];
EDITED
以下是如何将上述数据插入表中的示例
$dbhost = "localhost";
$dbname = "mydatabase";
$dbusername = "root";
$dbpassword = "mypppasss";
$link = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword);
$statement = $link->prepare("INSERT INTO form1(input1,input2,input3,input4,input5,input6,input7,input8,input9,input10,input11,input12,input13)
VALUES(:inp1,:inp2,:inp3,:inp4,:inp5,:inp6,:inp7,:inp8,:inp9,:inp10,:inp11,:inp12,:inp13)");
$statement->execute(array(
inp1=>$school,
inp2=>$year,
inp3=>$gender,
inp4=>$whatengineerdoes,
inp5=>$enjoyable_part,
inp6=>$youdontlike,
inp7=>$didnotlike,
inp8=>$wouldyou,
inp9=>$session_inspired,
inp10=>$before_session,
inp11=>$has_taught,
inp12=>$based_on,
inp13=>$comments
));