これが私のビューの一部です(ボタンクリックで実行されるjavascriptメソッド):
function assign()
{
var links_list1 = [];
var links1 = document.getElementById('moderatorUsers').getElementsByTagName('a');
for(var a in links1) {
if(typeof links1[a] == undefined) continue;
links_list1.push(links1[a].innerHTML);} var str1 =links_list1.toString();
var moderators = str1.split(',');
var links_list2 = [];
var links2 = document.getElementById('editorUsers').getElementsByTagName('a');
for(var a in links2) {
if(typeof links2[a] == undefined) continue;
links_list2.push(links2[a].innerHTML);} var str2 =links_list2.toString();
var editors = str2.split(',');
var links_list3 = [];
var links3 = document.getElementById('jEditorUsers').getElementsByTagName('a');
for(var a in links3) {
if(typeof links3[a] == undefined) continue;
links_list3.push(links3[a].innerHTML);} var str3 =links_list3.toString();
var jEditors = str3.split(',');
}
これが、javascript(moderators、editors、jEditors)の3つの配列を使用して呼び出す必要のあるコントローラーメソッドです。
function insertPos($moderators,$editors,$jEditors){
$account = new Account();
$account->insertPos($moderators,$editors,$jEditors);
}
javascriptメソッドの3つの配列を使用してコントローラーメソッドinsertPos($ moderators、$ editors、$ jEditors)を実行する方法を知る必要があります...
あなたが私に言ったように、私はこれを使ってjavascriptで配列を送信しました:
$.post('http://localhost/cakephp/Accounts/insertPos', {
data: {
'moderators': moderators,
'editors': editors,
'jEditors': jEditors
}
});
コントローラーで、次のようにアレイにアクセスしようとします。
public function insertPos() {
if (!empty($this->request->data)){
print_r($this->request->data);
$moderators = $this->request->data['moderators'];
$editors = $this->request->data['editors'];
$jEditors = $this->request->data['jEditors'];
$account = new Account();
$account->assignPos($moderators,$editors,$jEditors);
}
}
内部の部分if(!empty($this->request->data))
は実行されないため、アレイがコントローラーに送信されていないことを意味します。問題はどこにありますか?
ありがとうございました....