2012-01-18 2 views
1

Я работаю над системой бронирования электронных билетов. Когда пользователь нажимает статус билета, он должен отображать забронированные, а также доступные места, в чекбоксе. Теперь я могу выполнить эту операцию очень хорошо на PHP с помощью функции in_array(), но мне нужно показать это в другом месте. Как я могу показать их?Выполнение в массиве, как работа в шаблонах smarty

У меня есть как booked seats array, так и total number of seats. В PHP я использовал следующий код, чтобы отобразить их (AJAX):

$cnt = count($booked_seats); 
for($i = 1; $i<=$total_seats; $i++) { 
    if($i%10 == 0) { 
    echo '<br />'; 
    } 
    if(in_array($i,$booked_seats)) { 
    echo '<input type="checkbox" disabled="disabled" checked="checked" />'.$i; 
    } else { 
    echo '<input type="checkbox" name = "book[]" value = "'.$i.'" />'.$i; 
    } 
} 

ответ

2

Синтаксис in_array() в Smarty заключается в следующем:

{if $needle|in_array:$haystack_array} 

Таким образом, ваш цикл будет выглядеть примерно так:

// PHP:

$smarty->assign('total_seats',$total_seats); 
$smarty->assign('booked_seats',$booked_seats); 

// в шаблоне:

{foreach from=$total_seats item=seat_no name=seat_no} 
    {if $smarty.foreach.seat_no.iteration % 10 == 0} <br /> {/if} 
    {if $smarty.foreach.seat_no.iteration|in_array:$booked_seats} 
    <input type="checkbox" disabled="disabled" checked="checked" /> {$smarty.foreach.seat_no.iteration} 
    {else} 
    <input type="checkbox" name = "book[]" value = "{$smarty.foreach.seat_no.iteration}" /> {$smarty.foreach.seat_no.iteration} 
    {/if} 
{/foreach} 

Это проверялось, но вы получите идею ...

0

В случае Smarty 3, мой ответ очень похож на @Quasdunk «s единственное отличие заключается в синтаксисе in_array метода. это формы:

{if in_array($needle,$array_element)}.....{/if} 

Таким образом, вы бы присвоить свое содержание, как объяснить ему, но цикл будет также differentyou бы вместо того, чтобы иметь следующее:

{foreach $total_seats as $seat} 
    {if [email protected]%10==0} 
     <br /> 
    {/if} 
    {if in_array($seat_no,$booked_seats)} 
     <input type="checkbox" disabled="disabled" checked="checked" />{$seat} 
    {else} 
     <input type="checkbox" value="{$seat}" />{$seat} 
    {/if} 
    {/foreach} 
Смежные вопросы