繁体   English   中英

选择框中的PHP $ _POST仅返回第一个字符

[英]PHP $_POST from select box returns only the first character

我想从选择框中发布值,通过PHP运行它们并将它们分配给Smarty对象。

我的html标记如下:

<form action="http://www.domain.com/index.php?page=presse" method="post">
<p><label for="startDate" class="search-label">Jahr:</label>
<select name="datepicker">
   <option value="2014">2014</option>
   <option value="2013">2013</option>
   <option value="2012">2012</option>
</select></p>
<select name="issue">
   <option value="Abisolierzange">Abisolierzange</option>
   <option value="International">International</option>
   <option value="Kabelmesser">Kabelmesser</option>
</select></p>
<input type="submit" name="submit_presse_filter" class="blockHeadline" value="Suchen">
</form>

我收到这样的表单数据:

if(isset($_POST['submit_presse_filter'])) {
    $date  = $_REQUEST['datepicker'];   
    $issue = $_REQUEST['issue'];    
    $search_results["issue"]["datum"] = $date;
    $search_results["issue"]["ueberschrift"] = $issue;
}

最后,在我的模板中,我将数据如下所示:

{search_result.date}
{search_result.ueberschrift}

但是我只会得到值的第一个字母,例如

2

对于日期和

 A

为问题的第一价值。

这是为什么?

编辑:

错误是在聪明的foreach子句中。

在PHP中,我建立一个像这样的计数器:

    $query = "SELECT * FROM table";

$result = mysql_query($query) OR die(mysql_error());
$number = mysql_num_rows($result);

$search_results = array();

if($number > 0) {
$i=0;
    while($row = mysql_fetch_array($result)) { 
        $search_results["issue"][$i]["datum"] = $row['datum'];
        $search_results["issue"][$i]["ueberschrift"] = $row['ueberschrift'];
        $search_results["issue"][$i]["inhalt"] = $row['inhalt1'];
        $search_results["issue"][$i++]["ort"] = $row['ort'];

    }
}
$smarty->assign('search_results', $search_results);

现在,我可以在模板中执行此操作:

{if $search_results.issue}
   <p><strong>Presse</strong></p>
   <ul>
    {foreach item=search_result from=$search_results.issue}
    <li>
        <h2>{$search_result.datum}</h2>
    </li>
    {/foreach}  
    </ul>
 {/if}

您要在此处定义一个二维数组: $search_results["issue"]["datum"] = $date; 也许您希望它是$search_results["datum"] = $date; 代替。 然后{search_result.date}应该可以工作。 否则, {search_result.issue.date}可能会{search_result.issue.date}帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM