私はCakePHP 2.3を使用しています
Web アプリケーションがある 2 つの環境があります。まったく同じバージョンのアプリケーション (すべてのファイルが同じ) を使用したテスト環境で、Form->postLink
メソッドに問題があります。
Javascript コンソールに次のエラーが表示されます。
Uncaught TypeError: Object # has no method 'submit' users:119 onclick
両方の環境から得られた HTML を比較すると、このメソッドによって生成された属性name
がid
同じページで複数回繰り返されていることがわかります (これはそうであってはなりません)。
これは、これらの投稿リンクを生成するために使用するコードです。
foreach($users as $user){
$delete = $this->Form->postLink(__('Delete'), array('action' => 'delete', $user['user_id']), __('Are you sure you want to delete %s?', $user['user_id']));
}
これは、ご覧のとおり、id
との値が繰り返される、問題のある生成された HTMLです。name
<!-- link 1 -->
<form action="delete/1/" name="post_51e8019d095f1" id="post_51e8019d095f1" style="display:none;" method="post">
<input type="hidden" name="_method" value="POST"/>
</form>
<a href="#" onclick="if (confirm('Are you sure you want to delete blabla?')) { document.post_51e8019d095f1.submit(); } event.returnValue = false; return false;">Delete</a>
<!-- link 2 -->
<form action="delete/2/" name="post_51e8019d095f1" id="post_51e8019d095f1" style="display:none;" method="post">
<input type="hidden" name="_method" value="POST"/>
</form>
<a href="#" onclick="if (confirm('Are you sure you want to delete blabla22?')) { document.post_51e8019d095f1.submit(); } event.returnValue = false; return false;">Delete</a>
なぜこうなった?どういうわけかWebサーバーの構成に関係しているでしょうか?それ以外の説明は見当たりません...
ありがとう。