2014-02-20 102 views
0

我想從選擇框中發佈值,通過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; 
} 

而且finaly在我的模板我拿出這樣的數據:

{search_result.date} 
{search_result.ueberschrift} 

但我只會得到值的第一個字母,如

2 

日期和

A 

對這一問題的第一個值。

這是爲什麼?

編輯:

這個錯誤是智者的foreach子句中。

在PHP中我建立一個計數器是這樣的:

{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} 
+0

試試這個 - '$ date = $ _POST ['datepicker']; $ issue = $ _POST ['issue'];' –

+0

這通常發生在您訪問字符串位置而不是數組索引時 – verbumSapienti

+0

將調試輸出添加到'if(isset($ _ POST ...'你的代碼看看'$ date'和'$ issue'是否包含你想要的值(他們應該從我在這裏看到的)。然後你知道你的問題是用HTML-POST-PHP部分還是隻用PHP內部編碼 – SebastianH

回答

1

您在這裏定義一個二維數組:

$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); 

現在我可以在我的模板做$search_results["issue"]["datum"] = $date; 也許你希望這是$search_results["datum"] = $date;。然後{search_result.date}應該工作。否則,也許{search_result.issue.date}幫助。

+0

因爲我用。{foreach item = search_result from = $ search_results.issue}開始我的模板部分,它是正確的。我也得到一個輸出,但只是價值的第一個字符。 –

+0

@PascalCloverfield請張貼您的部分代碼。以及我上面評論的調試輸出。 – SebastianH

+0

你指給我正確的地方。我更新了我的問題。謝謝! –

相關問題