#php #cakephp
#php #cakephp
Вопрос:
У меня есть следующая форма, которая использует GET для передачи параметров контроллеру:
<?php echo $form->create('Entity', array('controller'=>'entities', 'name' => 'SearchForm','action'=>'index', 'type'=>'GET')); ?>
<table class="searchTable">
<tr>
<td>
<?php
$ticker = (isset($this->passedArgs['ticker'])) ? $this->passedArgs['ticker'] : "";
echo $this->Form->input('ticker', array("value"=>$ticker));
?>
</td>
</tr>
<tr>
<td>
<?php
$name = (isset($this->passedArgs['full_name'])) ? $this->passedArgs['full_name'] : "";
echo $this->Form->input('Description', array("value"=>$name));
?>
</td>
</tr>
<tr>
<td>
<?php
$country = (isset($this->passedArgs['country'])) ? $this->passedArgs['country'] : "";
$country_id = (isset($this->passedArgs['country_id'])) ? $this->passedArgs['country_id'] : "";
echo $this->Form->input('country', array("value"=>$country));
echo $this->Form->hidden('country_id', array('value'=>$country_id));
?>
</td>
</tr>
<tr>
<td><?php echo ' Filters enabled:';?></td>
</tr>
<tr>
<td>
<?php
$enable = isset($this->params['named']['enable']) ? $this->params['named']['enable'] : null;
echo $form->input('enable', array('label'=>false,'type'=>'checkbox', 'checked'=> (boolean) $enable));
?>
</td>
</tr>
<tr>
<td><?php echo $this->Form->end(__('Refresh List', true)); ?></td>
</tr>
</table>
Параметры не urlencoded. Какой для меня был бы лучший способ добиться этого? Нужно ли мне использовать javascript, поскольку URL создается браузером?
Я использую версию 1.3.7.
Ответ №1:
В итоге я сделал это POST, и мне не пришлось иметь дело с urlencoding.