【问题标题】:insert selected option into table将所选选项插入表中
【发布时间】:2012-05-19 12:21:05
【问题描述】:

我有这段代码,我正在尝试将选定的状态放入子目录表中。 到目前为止,它返回一个空值。我不确定这是否清楚,但我想要的只是:从选择选项中选择一个状态并提交它。我想将选定的州名放入我的表 subcat 中。

enter <?php
include("connect.php");
$state = $row['states']; //Select name
if (isset($_POST[submit])){
$query = "INSERT INTO subcat (sub_name) VALUES ('$state')";
mysql_query($query) or die(mysql_error());
}
?>
<form action="" method="post" name="form">
<?php
$sql = mysql_query("SELECT * FROM   state");
echo "<select name='states'>
<option value=''>Select a state</option>";
while ($row = mysql_fetch_assoc($sql)) {
echo "<option value='$row[id]'>$row[name]</option>";
}
echo "</select>";
?>
<input type="submit" name="submit" value="Continue" />
</form> here

谢谢

【问题讨论】:

  • 您必须使用 $_POST['states'] 来获取所选选项的值

标签: php


【解决方案1】:

$state = $row['states'] 更改为$state = $_POST['states']

<?php

include("connect.php");    
if (isset($_POST[submit]))
{
   $state = $_POST['states']; //Select name
   $query = "INSERT INTO subcat (sub_name) VALUES ('$state')";
   mysql_query($query) or die(mysql_error());
}

?>
<form action="" method="post" name="form">
<?php
$sql = mysql_query("SELECT * FROM   state");
echo "<select name='states'>
<option value=''>Select a state</option>";
while ($row = mysql_fetch_assoc($sql)) {
echo "<option value='$row[id]'>$row[name]</option>"; // if you want to 
//get the name into table, then use like this 
//echo "<option value='$row[name]'>$row[name]</option>";  or  
//echo "<option>$row[name]</option>";
}
echo "</select>";
?>
<input type="submit" name="submit" value="Continue" />
</form>

【讨论】:

  • 感谢您的回答,但现在它从状态表中插入了状态的 id 而不是名称。
  • 这是因为您将选项值作为id,如果您想要名称,则将其更改为$row[name]或从选择选项中删除值属性
  • 不客气,亲爱的,如果这对你有帮助,别忘了接受答案:)
【解决方案2】:

试试这个:

enter <?php
include("connect.php");
if (isset($_POST[submit])){
$state = $_POST['states'];
$query = "INSERT INTO subcat (sub_name) VALUES ('".mysql_real_escape_string($state)."')";
mysql_query($query) or die(mysql_error());
}
?>
<form action="" method="post" name="form">
<?php
$sql = mysql_query("SELECT * FROM   state");
echo '<select name="states" id="states">
<option value="">Select a state</option>';
while ($row = mysql_fetch_assoc($sql)) {
echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
}
echo '</select>';
?>
<input type="submit" name="submit" value="Continue" />
</form> here

不要忘记使用 mysql_real_escape_string 来防止 SQL 注入。我已经替换了 $state = $row['states']; $state = $_POST['states'];

我不知道你从哪里得到 $row...

上面会将州名插入到数据库中。

【讨论】:

  • 谢谢伙计,现在我得到的是 id 而不是州名。
  • 如果您在表单字段中使用选择,它总是将值解析回来。因此,始终将 value="" 放入您需要将其插入数据库的值中。不要忘记使用 mysql_real_escape_string 来防止 SQL 注入。并使用 $_POST 从具有 method="POST" 的表单中获取值。
猜你喜欢
  • 2019-07-31
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
  • 2023-03-23
  • 2021-02-23
  • 2013-02-03
相关资源
最近更新 更多