-1

嘿伙计们,所以我正在尝试为 wordpress 中所有查询的帖子概述产品功能。这是我的设置:

<?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; ?>

所以这将从wordpress获取一堆帖子并将它们粘贴到页面,然后假设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>   

我收到一条错误消息,提示单击没有“应用”方法

好的,所以 Wordpress 查询发布 -

<?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 代码相比,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's 在一个页面中应该是唯一的。

于 2012-12-20T04:27:22.257 回答