我有data$x[is.na(data$x) & data$condition.f == "test"] <- 0
这样:
select
我知道如果您使用<select class="fruitsSelect" name="fruits">
<option value="Apples">Apples</option>
<option value="Bananas">Bananas</option>
<option value="Oranges">Oranges</option>
</select>
属性,则可以设置默认值。
selected
但我想要做的是,从我从我的数据库中检索的值(我通过<select class="fruitsSelect" name="fruits">
<option value="Apples">Apples</option>
<option value="Bananas" selected>Bananas</option>
<option value="Oranges">Oranges</option>
</select>
将其发送到HTML
),我从我的数据库中检索的选项将是PHP
选项(默认选项)。
我对HTML有价值,但我不知道如何让它成为所选的选项,因为它可以改变。我正在使用selected
并尝试制作一些ifs语句,但我无法解决它。
如何将从数据库中检索的值与Smarty
的值进行比较,并将其作为选定的选项?
提前致谢!
答案 0 :(得分:2)
由于您特别询问了Smarty模板,这实际上非常简单。使用their example文件中的html_options
模板,并将标识符传递给所选属性。
index.tpl
的内容:
{html_options name=fruits options=$myOptions selected=$mySelect}
唯一真正混乱的部分是从数据库中填充数组。由于您没有指定该平台,我使用了MySQL。
首先,我设置一个简单的数据库表来为您的示例建模,并为选定状态设置布尔列。这可以根据您的喜好进行约束或设置,但是对于此示例 note 如果将multiple设置为true,则它将使用最后选择的一个。我使用ID作为奖励,因为它可能对非平凡场景更有用。如果您仍想使用与选项文字相同的值,则只需使用$row['id']
$row['fruit']
DROP TABLE IF EXISTS fruits;
CREATE TABLE fruits (
id INT PRIMARY KEY AUTO_INCREMENT,
fruit VARCHAR(30),
selected BOOLEAN
);
INSERT INTO fruits (fruit,selected)
VALUES
('Apples',FALSE),
('Bananas',TRUE),
('Oranges',FALSE);
现在使用php检索数据,创建智能对象,设置值,最后显示。
<?php
require_once(__DIR__.'/vendor/smarty/smarty/libs/Smarty.class.php');
$database_server = "localhost";
$database_username = "username";
$database_password = "p@55W0rd";
$database_name = "example_database";
// connect to database
$mysqli = new mysqli($database_server, $database_username, $database_password, $database_name);
if ($mysqli->connect_error)
trigger_error('Connect Error: '.$mysqli->connect_error, E_USER_ERROR);
// get records
$sql = "SELECT id, fruit, selected FROM fruits";
$result = $mysqli->query($sql);
while ($row = $result->fetch_array(MYSQLI_ASSOC)){
// set array index of fruit as id
$fruits[$row['id']] = $row['fruit'];
// get id of selected fruit
if ($row['selected'] == true)
$selected = $row['id'];
}
// create object
$smarty = new Smarty;
$smarty->assign('myOptions', $fruits);
$smarty->assign('mySelect', $selected);
// display it
$smarty->display('index.tpl');
这导致以下输出:
<select name="fruits">
<option value="1">Apples</option>
<option value="2" selected="selected">Bananas</option>
<option value="3">Oranges</option>
</select>
答案 1 :(得分:0)
假设Select是硬编码的,您可以使用:
Sub agregarproducto()
Range("A7:G7").Select
Range("G7").Activate
Selection.Copy
Dim p As Integer
p = 0
p = Range("A2:A50").Count
p = p + 1
Range(p, 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("E2:E3").Select
ActiveCell.FormulaR1C1 = "0"
Range("L11").Select
ActiveCell.FormulaR1C1 = "1"
End Sub
注意:我的Php有点生疏,所以原谅任何语法或愚蠢的错误。
如果选择列表是动态生成的,我建议查看评论中Fred-ii建议的内容。