我不知道如何使用smarty将值从表单传递给mysql查询。
代码body.tpl:
<form action="" name="training" id="training">
<select name="city">
<option value="ostrava">Ostrava</option>
</select>
<input type="text" name="date_start" id="date_start" value="" />
<input type="submit" />
</form>
Mysql查询:
SELECT * FROM table WHERE city="<value from city>" AND date_start="<value from date_start>";
答案 0 :(得分:1)
您可以通过以下方式使用smarty访问POST数据:$smarty.post.[name]
。
"<value from city>"
所在位置..'".$smarty.post.city."'..
代替"<value from date_start>"
位于..'".$smarty.post.date_start."'..
请注意,您要序列化输入。这假设您的查询包含在"..."
双引号中。例如,整个查询看起来像这样:
"SELECT * FROM table WHERE city='".$smarty.post.city."' AND date_start='".$smarty.post.date_start."'"
您需要告诉您表单以查找POST值。只需添加method='post'
:
<form ... method="post">
...
</form>
请注意,您也可以使用GET,但POST更安全,因为用户无法在网址中对其进行更改。
答案 1 :(得分:0)
$smarty.get.city
。如果您使用的是post方法,那么$smarty.post.city
。
与smarty无关。
$sql = "SELECT * FROM table"
. " WHERE city='" . $smarty.get.city . "'"
. " AND date_start='" . $smarty.get.start_date . "'";
注意:通过转义变量来避免sql注入。
请参阅:http://www.smarty.net/forums/viewtopic.php?p=75542
但我建议你在PHP方面做,而不是在模板中。