Ajax を使用して、自分のページから ExpressonEngine タグを含む PHP スクリプトを実行しようとしています。ドキュメントに従ってPHPスクリプトをセットアップしましたが、実際にはPHPスクリプトで関数を呼び出すことができないようです。私は何かが欠けているに違いない。
私のアヤックス:
function createNew(obj) {
$.ajax({
url: 'createNew.php',
data: "call=create_new",
type: 'GET',
success: function(data){
obj.innerHTML = data;
}
});
}
私のPHP:
<?php
if($_SERVER['REQUEST_METHOD']=="GET") {
$function = $_GET['call'];
if(function_exists($function)) {
call_user_func($function);
} else {
echo 'Function Not Exists!!' . $function;
}
}
class CreateNewEntry {
public function create_new() {
$this->EE->load->library('api');
$this->EE->api->instantiate('channel_entries');
$this->EE->api->instantiate('channel_fields');
$channel_id = $this->channel_id;
$data = array(
'title' => 'Ny entry',
'entry_date' => time(),
'ping_servers'=> array(),
'url_title' => 'new-entry',
'field_id_2' => '5.0',
'field_id_3' => '10%',
'field_id_4' => 'Author',
'field_id_5' => '4x4',
'field_id_6' => '<p>Some text</p>'
);
if ($this->EE->api_channel_entries->submit_new_entry($channel_id, $data) === FALSE)
{
$errors = $this->EE->api_channel_entries->errors;
echo $errors;
}
echo 'Success';
}
}
?>
最初はクラスや関数を使わないようにしました。しかし、クラス内の関数にある必要があるように見える $this でエラーが発生しました。だから私はそれをしました。しかし、それはまだ機能していません。何か案は?