2012-04-27 11 views
1

PHPとSmartyでMVCを使用してページを作成するのに、私はトリュインです。semantic URLS(URL書き換え)です。

私はコントローラーの名前とそのアクションを読み取るメインコントローラーを持っています。

例:サブトピック=「編集」クラス「オブジェクト」の関数であるオブジェクト&アクション=編集

:リライト読み取り後/マイページ/オブジェクト/

メインコントローラを編集します。

だから、私はこのような.TPL(Smartyテンプレート)内のフォームがあります:あなたがクリックしたとき

<form name="formulario" action="/mypage/imagen_del_dia/guardar" method="POST"> 
<table> 
<tr> 
<td><div>Autor</div></td> 
<td><input type='text' id='autor' value="{$username}" readonly /></td> 
</tr> 
<tr> 
<td><div><input type='hidden' id='id' value="{$imagen.id}"/></td> 
<td><input class="button_personalizado" type='submit' value='Editar' name='Editado'></td> 
</tr> 
</table> 
</form> 

を提出し、.htaccessファイルは、この操作を行います。

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteRule ^([0-9a-z_-]+)$ /mypage/index.php?subtopic=$1 [NC,L] 
RewriteRule ^([0-9a-z_-]+)/guardar$ /mypage/index.php?subtopic=$1&action=save [NC,L] 

をアイデアがあります$ _POSTデータを読み取ることができるということ。この場合

/mypage/index.php?subtopic=$1&action=save 

メインコントローラは、クラス「imagen_del_dia」を開き、関数 "save"

問題は、その時点で$ _POSTデータが失われていることです。

+3

あなたのルールはPOSTデータを破ることができません – zerkms

+0

私のルールがPOSTデータを破っていると言っているのですか、それともそれを壊さないと話していますか? – glrodasz

+2

私は彼らができないと言っています – zerkms

答えて

0

@Zerkmsありがとう、そうです!

私はAJAX関数のためにそのフォームを使用していたので、問題はフォームだったので、入力には "id"タグがあり、HTMLでは "name"タグでなければなりません。

だから私は "名前"のすべての "ID"の名前を変更し、今すぐ正常に動作します!

例:

<td><div><input type='hidden' name='id' value="{$imagen.id}"/></td> 

もう一つのヒントは、私がますprint_r($ _ POST)を入れていなかったということです。が正しい場所にあります。私のページはクラスなので、PHPページの?>タグの前にクラスの最後に置く必要があります。

ありがとうございます!

関連する問題