コントローラー関数を呼び出し、その後、ajax呼び出しでビューを更新したいと思います。
したがって、次のURLを使用してajaxスクリプトからコントローラー関数を呼び出します。
url: "index.php?option=com_mycomponent&task=component.save"
すべて問題ないようですが、コントローラのフォーム入力にアクセスできません。
$jinput = JFactory::getApplication()->input;
$data = $jinput->get('jform', 'default_value', 'filter');
$data
は空のままです。
フォームの通常のJoomlaボタンから関数を呼び出すと、すべてが正常になり、フォームのすべての値がコントローラーで使用可能になります。
コントローラー関数を呼び出し、その後、ajax呼び出しでビューを更新したいと思います。
私はあなたがこのようにそれを試したいと思うかもしれないと思います:
$data = $this->input->post->get('jform', array(), 'array');
joomla 3を使用している場合、この機能にはjqueryを使用できます。
JHtml::_('jquery.framework'); // make sure jquery is loaded
<script type="text/javascript">
jQuery.post('index.php?option=com_mycomponent&task=component.save',
jQuery( "#yourformid" ).serialize(), function(data,
statustxt){ jQuery('#resultdiv').html=data; })
</script>
これにより、要素に結果が返されます。 jQuery.post()のドキュメントはここにあります http://api.jquery.com/jquery.post/ 。ポスト機能では、フォームからのデータをjoomlaが読み取るポスト変数として追加する必要があります。 PHPで受信したすべてのポスト変数を表示するには、次のように記述します。
print_r($_POST);