0

「fancybox」という Jquery スクリプトを使用しようとしています。

タイトルが選択したページへのリンクになるようにする必要があります。リンクにはユーザーと画像名を含める必要があります。PHP $_GET と Javascript 関数でこれらを実行できます。

問題は、必要に応じて、両方を 1 つの文字列として一緒に含めることです。JavaScript を実行して画像名を返す代わりに、コード自体を表示するだけです。

私の質問は、PHP をまだ使用しているときに、JavaScript を実行してリンクに含める方法です。(PHP部分を含める前に機能しました)

これは私がこれまでに得たものです:

  jQuery(document).ready(function(){
        var imagename = function( item ) {
                        return item.href.replace('/images/<?php echo $_GET['user']; ?>/', '');
                    } 
    $(".fancybox")
        .attr('rel', 'gallery')
        .fancybox({

            margin      : 20,
            padding     : 10,
            openEffect  : 'none',
            closeEffect : 'none',
            nextEffect  : 'none',
            prevEffect  : 'none',
            margin      : [20, 60, 20, 60], // Increase left/right margin
            showCloseButton : true,
            showNavArrows   : true,
            title       : '<a href="delete.php?boat=<?php echo $_GET['user'].'&image='; ?>'+imagename+'">Delete this image?</a>'
        });
    })

これはそれが生成するリンクです:

http://xxx.xxx.xxx.xxx/delete.php?boat=BoatCV20&image=function%20(%20item%20)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20item.href.replace('/images/username1/',%20'');%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}

ありがとう。

4

5 に答える 5

0

サーバー側の計算を行っていないため、javascript でのみ実行する必要があります。このhttps://github.com/allmarkedup/purlのようなプラグインを使用して、URLから必要なパラメーターを取得するか、stackoverflow を検索して他の多くの軽量関数を検索できます。

于 2013-06-21T12:13:35.690 に答える
0

すべての助けをありがとう、最終的に次のコードでそこにたどり着きました:

jQuery(document).ready(function(){
$(".fancybox")
    .attr('rel', 'gallery')
    .fancybox({

        margin      : 20,
        padding     : 10,
        openEffect  : 'none',
        closeEffect : 'none',
        nextEffect  : 'none',
        prevEffect  : 'none',
        margin      : [20, 60, 20, 60], // Increase left/right margin
        showCloseButton : true,
        showNavArrows   : true,
        title       : function( item ) {
                    var imagename = item.href.replace('/images/<?php echo $_GET['user']; ?>/', '');
                    return '<a href="delete.php?boat=<?php echo $_GET['user'].'&image='; ?>'+imagename+'">Delete this image?</a>'
                }
    });
})
于 2013-06-21T13:25:13.000 に答える
0

アイテムとは?jQuery(document).ready の前に定義されたグローバル var である場合は、次のことができます。

var imagename = item.href.replace('/images/<?php echo $_GET['user']; ?>/', '');
于 2013-06-21T12:31:23.487 に答える
0

imagename(item)参照を渡さないで呼び出す必要があります。

'...?boat=<?php echo $_GET['user']; ?>&image=' + imagename(item) + '">...'

しかし問題がある。すべての画像の項目パラメーターが何らかの形で存在することを期待しています。これは実際にはこの方法では不可能です。各画像のタイトルを変更してから、 title オプションをデフォルトのままにして fancybox を呼び出すことができます:

$(".fancybox img").each(function() {
    $(this).attr('title', '...?boat=' + user + '&image=' + imagename(this) + '">...'
});

また、URI に入力した画像パスを URL エンコードすることをお勧めします。

'...' + encodeURIComponent(imagename()) + '...'

PHP 部分を次のように 1 か所で使用します。

var user = "<?php echo $_GET['user']; ?>";

次に、user後で JavaScript 変数を使用します。それははるかに読みやすいです。

于 2013-06-21T12:10:46.863 に答える