如果使用PHP设置了另一个输入,则替换输入值

时间:2014-11-17 13:01:08

标签: php sqlite pdo

我正在处理的页面上的

可以将内容上传到数据库。你给它一个标题,类别,描述和图像路径。它完全有效,除了我希望有可能从现有类别列表中选择类别,或者想出一个新类别。

现在我有两个具有相同名称(类别)的输入,但它始终只是标记中设置数据库中类别的最后一个。所以我想要的是第一个输入,即<select>,如果您指定自己的类别,则会被忽略。如果您未在该输入中指定任何内容,则第一个应该是设置类别的那个。

我是PHP的新手,我不了解javaScript,但如果我必须用它来解决这个问题,那就这样吧。

以下是插入数据库表的内容:

$ad[] = strip_tags($_POST["title"], $strip);
$ad[] = strip_tags($_POST["category"], $strip);
$ad[] = strip_tags($_POST["text"], $strip);
$ad[] = strip_tags($_POST["image"], $strip);

$stmt = $db->prepare("INSERT INTO Object ('title', 'category', 'text', 'image') VALUES (?, ?, ?, ?)");
$stmt->execute($ad);

以下是输入:

$selectCategory = "<select id='input1' name='category'>";
foreach($categories as $category) {
  $selectCategory .= "<option value='{$category}'>{$category}</option>";
}
$selectCategory .= "</select>";

<?php echo $selectCategory; ?><br>
<input type='text' class='text' name='category'>

由于

2 个答案:

答案 0 :(得分:0)

您可以为输入文本框使用不同的name属性。

e.g。 <input type='text' class='text' name='customcategory'>

服务器端:

$category = !empty($_POST['customcategory']) ? $_POST['othercategory'] : $_POST['category'];

然后在数据库中插入$ category。

答案 1 :(得分:0)

以不同的方式命名2个输入,例如category1和category2,如果是这样的话:

$ad[] = strlen($_POST["category2"]) ? strip_tags($_POST["category2"], $strip) : strip_tags($_POST["category1"], $strip);

如果(How do I use shorthand if / else?

,则称为速记