0

フロントエンドにイメージ マップがあり、そこから、fileadmin ディレクトリの下の別のフォルダーに保存されているいくつかのイメージにアクセスする必要があります。そして、この例に従って、eIDでそれをやろうとしています: [http://www.alexanderschnitzler.de/2011/06/howto-ajax-requests-with-extbase-and-fluid/][1]

しかし、私の問題は、1 つのディレクトリにしかアクセスできないことです。フロントエンドからのユーザー選択に基づいて、別のディレクトリにアクセスできませんでした。

これは私がやろうとしていたことのコードです: 私のコントローラーには ajaxAction があり、1 つのディレクトリのフル パスを指定する必要があります。ここに私の質問とおそらく解決策があります:

/**
 * @return void
 */
public function ajaxAction() {

    $image_file_path = "fileadmin/Images/Sattic/Amik/small";
    //$image_file_path = "fileadmin/Images/Sattic/'+$id+'";
    $d = dir($image_file_path) or die("Wrong path: $image_file_path");
    while (false !== ($entry = $d ->read())) {
        if($entry != '.' && $entry != '..' && !is_dir($dir.$entry)) 
        $images[] = $entry;
    }
    $d->close();

    rsort($images);
    return json_encode($images);
}

私のindex.htmlには、ユーザーがさまざまな領域をクリックし、updataImage(id)関数が次のようになると、関数updateImage(id)が呼び出されるマップタグがあります。

function updateImageGallery(id) {
console.log(id);

var ajaxUrl = "{f:uri.action(action:'ajax', pageType:'100101')}";

$.getJSON(ajaxUrl, function(data) {
    var items1 = [];
    var items2 = [];
    $data = data;
    console.log('dataLength: ' + $data.length);
    console.log('dataArray: ' + $data);

    $.each($data.slice(0, 4), function(key, val) {
        valLink = val.replace("small.", "");
        items1.push('<td><a href="fileadmin/Images/Sattic/' + id +'/'+ valLink +'" target="_blank"><img width="145" height="145" id="" src="fileadmin/Images/Sattic/' + id +'/small/'+ val +'"/></a></td>');
    });
    $('<tr/>', {
        html: items1.join('')
    }).appendTo('#glRegion');

    $.each($data.slice(4, 8), function(key, val) {
        valLink = val.replace("small.", "");
        items2.push('<td><a href="fileadmin/Images/Sattic/' + id +'/'+ valLink +'" target="_blank"><img width="145" height="145" id="" src="fileadmin/Images/Sattic/' + id +'/small/'+ val +'"/></a></td>');
    });
    $('<tr/>', {
        html: items2.join('')
    }).appendTo('#glRegion');

});
return false;

}

updateImageGallery(id) 関数からディレクトリの ID を渡せるようにしたいので、各ディレクトリの画像を取得できます。

これを行うことは可能ですか?30 の異なる地域があり、現在の方法で問題を解決する場合、30 の異なる eID を使用する必要があります。これを解決するためのよりスマートな方法かもしれないと思います。

何か提案はありますか?

4

1 に答える 1

0

を使用してget 変数t3lib_div::_GET('myid')にアクセスできます。myid

var ajaxUrl = "{f:uri.action(action:'ajax',**myid:id,** pageType:'100101')}";セットに使えそうです。

とにかく、PHPスクリプト内で有効なパス/IDのリストを生成し、それらに対してgetパラメーターを確認してください。

于 2012-11-13T19:11:04.563 に答える