Erro no action do form

Senhores,

Estou começando a utilizar o yii e de cara peguei o e-commerce que já utiliza o framework.

Estou com o seguinte problema: todos os formulários do site pararam de funcionar mas quando eu substituo


<?php echo CHtml::beginForm(); ?>

por


<form action="" method="post">

o formulário funciona. Alguém faz ideia do que pode ser isso??

Possato,

  1. Fizeram atualização do framework?

  2. Todos os CHtml::beginForm() tem o CHtml::endForm()?

  3. Paro de funcionar a submissão dos dados ou as validações?

Posta o formulário completo para nós.

uma correção, não foram todos os forms que pararam de funcionar, apenas o do gerenciador que esta na pasta modules. o action do form criado fica /pasta-do-gerenciador/caminho-do-arquivo quando eu defino manualmente o action="" que funciona. os site esta dentro de views e os forms funcionam normalmente.

agora respondendo as perguntas:

  1. o framework não foi atualizado, e não sei ver a versão :(

  2. sim, todos os forms possuiem CHtml::beginForm() e CHtml::endForm();

  3. parou de funcionar tudo. parece que a página é recarregada apenas;

segue o código de um dos forms:


<div class="yiiForm">


<p>

Campos com <span class="required">*</span> são obrigatórios.

</p>


<?php echo CHtml::beginForm('', 'post', array('enctype'=>'multipart/form-data')); ?>

<?php echo CHtml::errorSummary($model); ?>


<div class="simple">

<?php echo CHtml::activeLabelEx($model,'codTipoProduto'); ?>

<?php echo CHtml::activeDropDownList($model,'codTipoProduto', CHtml::listData($tiposProduto, 'codTipoProduto', 'strTipoProduto')); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'strProduto'); ?>

<?php echo CHtml::activeTextField($model,'strProduto',array('size'=>50,'maxlength'=>50)); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'numPreco'); ?>

<?php echo CHtml::activeTextField($model,'numPreco'); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'numPrecoPromocional'); ?>

<?php echo CHtml::activeTextField($model,'numPrecoPromocional'); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'numOrdemVitrine'); ?>

<?php echo CHtml::activeTextField($model,'numOrdemVitrine'); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'numEstoque'); ?>

<?php echo CHtml::activeTextField($model,'numEstoque'); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'indNovo'); ?>

<span>

<?php echo CHtml::activeRadioButtonList($model, 'indNovo', array('S' => 'Sim', 'N' => 'Não'), array('separator' => '', 'class'=> 'radio')); ?>

</span>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'strDescricao'); ?>

<?php echo CHtml::activeTextArea($model, 'strDescricao', array('class' => 'textareaLarge')); ?>

</div>

<div class="simple">

<?php echo CHtml::activeLabelEx($model,'strDimensoes'); ?>

<?php echo CHtml::activeTextField($model, 'strDimensoes', array('size' => 50,'maxlength' => '255')); ?>

</div>


<div class="simple">

<?php echo CHtml::label("Cores",'Produto[vetCodCor]'); ?>

<?php echo CHtml::listBox("Produto[vetCodCor]", $vetCodCor, CHtml::listData($cores, "codCor", "strNome"), array("multiple"=>"multiple")); ?>

</div>


<div class="simple">

<?php echo CHtml::label("Ocasições/Tags",'Produto[vetCodTag]'); ?>

<?php echo CHtml::listBox("Produto[vetCodTag]", $vetCodTag, CHtml::listData($tags, "codTag", "strTag"), array("multiple"=>"multiple")); ?>

</div>


<? if($update): ?>

<a href="<?php echo $this->createUrl('/admin/foto/create', array('produto' => $model->codProduto));?>" class="btn"><span class="btnLeft"></span><span class="btnMiddle">Adicionar foto</span><span class="btnRight"></span></a>

<br style='clear:both;' />

<ul class='fotos'>

	<?php foreach($model->fotos as $foto): ?>

	<li <?php if($model->codFotoPrincipal == $foto->codFoto): ?>class="principal"<?php endif; ?>>

		<img src="<?php echo $this->createUrl('/foto/show', array('id' => $foto->codFoto, 'size' => '40x40')); ?>" alt="" />

		Cor: <?php echo $foto->cor->strNome; ?>

		<a href="<?php echo $this->createUrl('foto/delete', array('id' => $foto->codFoto)); ?>">remover</a><br />

		<a href="<?php echo $this->createUrl('foto/principal', array('id' => $foto->codFoto)); ?>">torná-la principal</a>

	</li>

	<?php endforeach; ?>

</ul>

<? else: ?>

<div class="simple">

<?php echo CHtml::activeLabelEx($foto,'binFoto'); ?>

<?php echo CHtml::activeFileField($foto, "binFoto"); ?>

</div>

<? endif; ?>


<div class="action" style="margin-bottom:20px">

<?php echo CHtml::submitButton($update ? 'Salvar' : 'Adicionar'); ?>

</div>


<?php echo CHtml::endForm(); ?>


</div><!-- yiiForm -->

valeu pela força!

Possato,

Faz um teste muda o beginForm():


CHtml::beginForm(Yii::app()->createAbsoluteUrl('seucontroler/seuaction'), 'post', array('enctype'=>'multipart/form-data'))

Como você postou que está /pasta-do-gerenciador/caminho-do-arquivo a primeira barra da URL mostra que ele está indo para o diretório principal, por exemplo a pasta principal onde está seu projeto.

Eu adicionei o beginForm o Yii::app()->createAbsoluteUrl(‘seucontroler/seuaction’), ai você muda o ‘seucontroler/seuaction’ para seu respectivo Controller e Action.

Se tiver firebug é bom também, ai você vê se está com algum erro.

Só mais uma dúvida, o formulário ta sendo submetido para uma outra página?