-1

こんにちは、ワードプレスでクエリされたすべての投稿に対して概要製品機能を機能させようとしています。これが私のセットアップです:

<?php $i = 0; $j = 1;?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); 
      $postid[$i] = get_the_ID();
      echo "<input type='hidden' value='".$postid[$i]."' id='hiddenpostitle".$j."' name='hiddenpostitle'/> ";
      echo "<input type='hidden' value='".$j."' id='hiddenpostnumfield'/> ";
?>
 <script type="text/javascript">
      $(function() {
           $('.item-post a').click(function() {
                 var num;
             $(this).num = $('#hiddenpostnumfield').val();
                 var prodname ;
             $(this).prodname = $('#hiddenpostitle' + num).val();

                 $.post('overviewcheck-515adfzx8522', { 
                      'ProdName': prodname
                 },
                 function( response ) {
                 },
                 'json'
            );
         });
         $('.item-post a').colorbox({
                 opacity:0.3, 
                 href:"../overviewa512454dzdtfa"
         });
    });
 </script>              
<?php 
         $i++;
     $j++;
    ?>
    <?php endwhile; endif; ?>

したがって、これはワードプレスから一連の投稿を取得してページに貼り付けます。JQuery コードは、どの投稿がクリックされたかに基づいて、指定された prodid を取得することを想定しています。.item-post a

これを実行すると、最後の投稿が表示されますが、何も起こりません。たとえば1,2,3,4,5、常に 5 が選択されます。

これが理にかなっているかどうか教えてください。$(this) を適切に使用しているとは思いません。しかし、確かではありません。もしあなたが私に手を差し伸べてくれるなら、私は感謝します:)

更新しました:

<?php /*query_posts('test');uncategorized*/ $i = 0; $j = 1;?>
                <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <?php get_template_part( 'content', get_post_format() ); 
                    $postid[$i] = get_the_ID();
                    echo "<input type='hidden' value='".$postid[$i]."' id='hiddenpostitle".$j."' name='hiddenpostitle'/> ";
                    echo "<input type='hidden' value='".$j."' id='hiddenpostnumfield'/> ";
                ?>

                <?php 
                $i++;
                $j++;
                ?>
                <?php endwhile; endif; ?>
            <script type="text/javascript">
                                $(function()
                                {


                                   $('.item-post a').each("click" ,function(e) {
                                         $(this).click(function(e) {


                                        var num;
                                        num = $('#hiddenpostnumfield').val();
                                    var prodname ;
                                    prodname = $('#hiddenpostitle' + num).val();

                                       $.post('overviewcheck-515adfzx8522', 
                                        { 
                                            'ProdName': prodname

                                        },
                                        function(response) {
                                        },
                                        'json'
                                    );
                                    });
                                   });
                                    $('.item-post a').colorbox({opacity:0.3, href:"../overviewa512454dzdtfa"});
                                });

                            </script>   

click has no method 'apply' というエラーが表示されます

さて、ワードプレスのクエリ投稿 -

<?php /*query_posts('test');uncategorized*/ $i = 0; $j = 1;?>
                    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                    <?php get_template_part( 'content', get_post_format() ); 
                        $postid[$i] = get_the_ID();
                        echo "<input type='hidden' value='".$postid[$i]."' id='hiddenpostitle".$j."' name='hiddenpostitle'/> ";
                        echo "<input type='hidden' value='".$j."' id='hiddenpostnumfield'/> ";
                    ?>

                    <?php 
                    $i++;
                    $j++;
                    ?>
                    <?php endwhile; endif; ?>

これにより、入力フィールドが作成されます-値が増加する2つの非表示フィールドなので、 hiddenpostitle1、hiddenpostitle2 など...そして hiddenpostnumfield 値は1、2、3などに増加します。投稿として投稿されます。JQueryコードは、渡されたデータに基づいてセッションを作成するファイルに送信するよりも、どの画像(image-post a)が選択されているかを取得し、カラーボックスはそれを概要の外観で開きます。

私の問題:

彼らが選択した製品に基づいて、渡された正しいデータを取得できません。それが常にサイトに置かれた最後の投稿であっても。

さて、私たちはどこかに行きます!!!

prodjsoundlighting.com にアクセスして動作を確認してください。画像をクリックしますが、まだバグがあり、理由がわかりません。

更新されたコードは次のとおりです。

<?php /*query_posts('test');uncategorized*/ $i = 0; $j = 1;?>
                <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <?php get_template_part( 'content', get_post_format() ); 
                    $postid[$i] = get_the_ID();
                    echo "<input type='hidden' value='".$postid[$i]."' id='hiddenpostitle".$j."' name='hiddenpostitle'/> ";
                    echo "<input type='hidden' value='".$j."' id='hiddenpostnumfield".$j."'/> ";
                ?>

                <?php 
                $i++;
                $j++;
                ?>
                <?php endwhile; endif; ?>
                <script type="text/javascript">
                                $(function()
                                {


                                   $('.item-post a').each(function(i) {
                                         $(this).on("click", function(e) {


                                        var num;
                                        num = $('#hiddenpostnumfield' +(i+1)).val();
                                    var prodname ;
                                    prodname = $('#hiddenpostitle' + (i+1)).val();

                                       $.post('overviewcheck-515adfzx8522', 
                                        { 
                                            'ProdName': prodname

                                        },
                                        function(response) {
                                        },
                                        'json'
                                    );
                                    });
                                   });
                                    $('.item-post a').colorbox({opacity:0.3, href:"../overviewa512454dzdtfa"});
                                });

                            </script>   

So now it is putting up, but it is taking like 3 above what it is suppose...best way is to see it so check it out and let me know.
4

1 に答える 1

0

使い方が$(this)間違っています。$(this)関数をトリガーした要素を指しているので、あなたの場合は clicked$('.item-post a')です。

また、 とは関係ありません$(this)。コードはループを実行しますが、同じid-で大量の入力を作成しますhiddenpostnumfieldidはページ内で一意である必要があります。

于 2012-12-20T04:27:22.257 に答える