嘿伙计们,所以我试图为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代码根据从.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>
我收到错误消息称点击没有方法'apply'
好的,所以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代码将选择哪个图像(图像-pos 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.
答案 0 :(得分:0)
您错误地使用了$(this)
。 $(this)
指向触发该功能的元素,因此在您的情况下点击了$('.item-post a')
。
此外,与$(this)
无关,您的代码会在循环中运行,但会使用相同的id
- hiddenpostnumfield
创建大量输入。 id
在页面中应该是唯一的。