- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个带有文本输入的表单和一个加载了从数据库检索的值和数据的组合框。这个想法是,当您提交表单时,文本字段中的值将存储在数据库的字段之一中。我需要做的是将组合框的选定值(数字并从数据库的其他表中提取)(不是组合中显示的文本)存储到存储表单文本字段的同一个表中.
数据库结构由两个表组成,分别名为国家和名称。国家/地区有一个名为country_id 的字段和另一个名为country_name 的字段(这两个字段填充组合框。表Appellations 具有三个名为appellation_id (pk、nn、ai)、country_id 和appellation_name 的字段。appellation_name 字段必须填写在表单的文本字段,country_id 必须填写组合框的选定值,该值等于国家表的country_id 值。到目前为止,我已经能够创建表单并使用 db 值加载组合框中的所有国家/地区。
表单代码是
<form name="New Appellation" action="actions/register_appellation.php" method="POST" onsubmit="return validate()">
Nombre denominacion de origen:
<input type="text" placeholder="Nombre DO" name="fappellation_name">
<br>
Pais denominacion de origen:
<?php
include_once 'includes/fast_conn.php';
mysqli_select_db($cn,$db_name) or die(mysql_error());
$sql = "SELECT country_name, country_id FROM countries";
$rs = mysqli_query($cn,$sql) or die(mysql_error());
echo "<select name='appellation_country'>";
while($row = mysqli_fetch_array($rs)){
echo "<option value='".$row["country_id"]."'>".$row["country_name"]."</option>";
}mysqli_free_result($rs);
echo "</select>";
?>
<input type="submit" value="Registrar">
</form>
处理 POST register_appellation.php 的 php 是:
<?php
include_once '../includes/fast_conn.php';
$fappellation_name=$_POST['fappellation_name'];
$fcountry_id=$_POST['country_id'];
$save="INSERT INTO $db_name($fcountry_id, $$fappellation_name)";
$result=mysqli_query($cn,$save);
if($result){
echo "<font size='+1' color='blue'> $fappellation_name, Successfully Registered.</font>";
}
else
{
echo "<font size='+1' color='red'>Registration Failed.</font>";
}
?>
任何帮助将不胜感激
最佳答案
我在下面添加了修改后的源代码,应该可以解决该问题。
我在源代码中做了一些事情。我相信这一切都应该被很好地记录下来。以下是我添加的内容的列表:
register_appellation.php
现在检查字段是否已填写。register_appellation.php
现在对查询变量执行清理。 (有助于防止 SQL 注入(inject)攻击)register_appellation.php
现在通过与 countries
表交叉引用来确认其收到的国家/地区 ID 是否有效。这是表单代码:
<form name="New Appellation" action="actions/register_appellation.php" method="POST" onsubmit="return validate()">
Nombre denominacion de origen:
<input type="text" placeholder="Nombre DO" name="fappellation_name">
<br>
Pais denominacion de origen:
<?php
include_once 'includes/fast_conn.php';
$boolSelectionSuccessful = $cn->select_db($db_name);
if(!$boolSelectionSuccessful){
$deathMessage = "<br><div>" .
"Oh no! An error occurred on our end!<br>" .
"Here's what we know:<hr>" .
$cn->error .
"<hr>" .
"If this error continues to occur, please contact the website administrator." .
"</div>";
die($deathMessage);
}
$sql = "SELECT `country_name`, `country_id` FROM `countries`";
$rs = $cn->query($sql);
if($rs === FALSE){
$deathMessage = "<br><div>" .
"Oh no! An error occurred on our end!<br>" .
"Here's what we know:<hr>" .
$cn->error .
"<hr>" .
"If this error continues to occur, please contact the website administrator." .
"</div>";
die($deathMessage);
}
echo "<select name='appellation_country'>";
while($row = $rs->fetch_assoc()){
echo "<option value='".$row["country_id"]."'>".$row["country_name"]."</option>";
}
$rs->close();
echo "</select>";
?>
<input type="submit" value="Registrar">
</form>
这里是register_appellation.php
<?php
include_once '../includes/fast_conn.php';
function checkField($fieldName){
if(isset($_POST[$fieldName])){
if(!empty($_POST[$fieldName])){
/* The request has the fieldName submitted && the fieldName was not left empty */
return true;
}else{
return false;
}
}else{
return false;
}
}
$checkArray = array(checkField('fappellation_name'), checkField('appellation_country'));
if(in_array(false, $checkArray) || !is_numeric($_POST['appellation_country'])){
/* the check assumes that 'appellation_country' (country id) should be numeric */
die("<font size='+1' color='red'>Registration Failed. Please fill in all forms.</font>");
}
$boolSelectionSuccessful = $cn->select_db($db_name);
if(!$boolSelectionSuccessful){
$deathMessage = "<br><div>" .
"Oh no! An error occurred on our end!<br>" .
"Here's what we know:<hr>" .
$cn->error .
"<hr>" .
"If this error continues to occur, please contact the website administrator." .
"</div>";
die($deathMessage);
}
$sql = "SELECT `country_name`, `country_id` FROM `countries`";
$rs = $cn->query($sql);
if($rs === FALSE){
$deathMessage = "<br><div>" .
"Oh no! An error occurred on our end!<br>" .
"Here's what we know:<hr>" .
$cn->error .
"<hr>" .
"If this error continues to occur, please contact the website administrator." .
"</div>";
die($deathMessage);
}
$countryIdValid = False;
$countryName = "";
/* $countryName is unused, by the current code, but it will still be set in the while loop.
If you want to store the country name in the `appeallations` table, this variable
could simply be added to the insert statement. */
while($row = $rs->fetch_assoc()){
if($row['country_id'] == $_POST['appellation_country']){
$countryIdValid = true;
$countryName = $row['country_name'];
break;
}
/* else - continue looping to check the next country_id */
}
$rs->close();
/* now that the loop has been exited, we'll make sure the country_id was verified */
if(!$countryIdValid){
die("<font size='+1' color='red'>Registration Failed. Unknown country.</font>");
}
$fappellation_name= $cn->real_escape_string($_POST['fappellation_name']);
$fcountry_id = $cn->real_escape_string($_POST['appellation_country']);
$save="INSERT INTO `appellations` (`country_id`, `appellation_name`) VALUES ('$fcountry_id', '$fappellation_name')";
$result = $cn->query($save);
if($result !== FALSE){
echo "<font size='+1' color='blue'> " . $_POST['fappellation_name'] . ", Successfully Registered.</font>";
}else{
$deathMessage = "<br><div>" .
"Oh no! An error occurred on our end!<br>" .
"Here's what we know:<hr>" .
$cn->error .
"<hr>" .
"If this error continues to occur, please contact the website administrator." .
"</div>";
die($deathMessage);
}
?>
<小时/>
如果我遗漏了什么,请随时编辑和更新我的答案。我没有运行代码,因此可能存在我没有注意到的语法或逻辑错误。
希望这有帮助,
斯宾塞
关于php - 将组合框中选定的值存储到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25896100/
我有十二个指向不同类别的链接。作为用户定位的一种方式,我想强调用户现在所在的类别( - 按钮)。 如何在 CSS 中实现这一点?我读到了 selected和 active ,但我还没能让它发挥作用。
我想通过单击按钮来获取选择框中的所有选项值(选定/未选定)。我怎样才能做到这一点? 最佳答案 我认为这是使用 Traversing/map 的好机会方法: var valuesArray = $("#
我正在尝试构建一个计算器,其中包含两个数字的两个 TextView 字段。我弄清楚了如何使用“应用程序内”数字键盘输入顶部数字 Operand 1 [textView] 的数字(我知道使用 EditT
我有一个简单的 jQuery $("span.value"),它选择包含文本的节点。此文本保证为整数。如何计算所有选定节点文本的总和,并将总和放入另一个节点? 3 4 5 ? 最佳答案 你可以这样做:
我从同一台服务器上托管的一堆数据库中备份了 mysql 数据库 db1。现在只需要备份具有访问 db1 权限的选定用户,以便我可以在 db1 还原之前将这些特权用户还原到我的新服务器。 最佳答案 St
我有一个 ListView 。我想添加一个动画,如果我选择一个列表项,它将被删除,并且该项目下方的其余项目将通过向上滑动动画向上移动。我已经通过获取其子位置使用线性布局完成了此操作,但我无法理解如何向
我不明白如何使用 Python 解析来自 Outlook 的突出显示(选定)邮件? 我有这个代码,但它适用于上一封邮件。 import win32com.client outlook = win32c
在 Xcode 6 中,您现在可以为选项卡项目的选中和未选中状态设置图标。请参阅下图中的说明: 和 唯一的问题是 SELECTED 状态的图像不显示。它只是显示空白。还有其他人有这个问题吗?请看下面的
在我的数据模型中,我有一个实体组和另一个GroupMember实体。一个Group包含一个或多个GroupMembers,但一个GroupMember只能同时位于一个Group中。到目前为止没有问题,
Android Button 在不同状态(正常、按下、选中、禁用)之间移动时会更改其可绘制背景。背景切换是即时的。是否可以使其平滑(动画)? 最佳答案 是的,这是可能的。您只需为按钮添加 addAni
我使用 emacs 来查看和编辑代码和其他文本文件。我想知道是否有一种方法可以向前或向后搜索当前缓冲区中标记的文本。类似于我在记事本或写字板中可以执行的操作。就像我可以在缓冲区中标记一些文本并执行 C
如何根据状态(选定、禁用)设置自定义选择类?如何根据状态选择(选定、禁用)在自定义下拉列表中设置类?照做了,但什么也没发生。请看我的例子................................
我正在尝试检查下拉菜单中是否存在特定文本值,如果存在,我想将其属性设置为selected。 我成功编写了一个 if 语句来检查文本是否存在: var country = usr.location; i
对于我的应用程序,我想让用户能够在回收器 View 中调整 TextView 项目的文本大小(通过捏缩放或 SeekBar)。默认值应为系统设置中选择的文本大小。最小值应为系统设置中的“非常小”,最大
我正在尝试创建一个 ListBoxItem 模板,该模板在选择时将带有圆角边框。我得到了这个 xaml,它在选择时不起作用:
我正在寻找检索焦点元素的 HTML。查看 webdriver.io 文档,方法 .getActiveElement() 应该可以解决这个问题。但是,我的 IDE (WebStorm) 显示错误,指出它
我创建了一个圆,在我的 onDraw() 方法中围绕圆绘制了一条字符串和一条线(箭头)。 public class Circle extends Activity { public class
对于生产应用程序,我们希望在 Windows 窗体应用程序的 ElementHost 内显示 DatePicker,但我们遇到了 SelectedDate 和 CurrentDate 不可读的问题,因
好的,我在此处和 Google 上的许多网站上搜索了此问题的结果,但找不到针对我的问题的确切解决方案。 我有一个 sql 提取姓名和办公室。所以事情是这样的: $sql = "SELECT m
选中单元格时如何改变灰色? 最佳答案 当用户点击选中的行 (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSInd
我是一名优秀的程序员,十分优秀!