情景:
我为活动创建了一个自定义帖子类型,访客可以通过表单注册。单击“出席”按钮时,表格会在模式内部弹出。如您所见,我使用了一个带有get\\u title()函数的隐藏输入字段与表单一起发送,这样我就知道用户正在参加什么活动。此代码已添加到此帖子中。
问题
我在页面上显示了4个事件。此代码总是回显一个事件的标题,而不是单击的事件的标题。例如:如果我单击event1,则echo是event3的标题;如果我单击event2,则echo也是event3的标题。
问题
如何获取
get_title()
函数或其他函数来响应所单击事件的标题?
<div class="col-md-6">
<?php
query_posts(\'post_type=agenda&order=DESC&posts_per_page=2\');
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<div class="event-left">
<a class="cta-button" data-toggle="modal" data-target="#myModal">
<i class="fa fa-chevron-right fa-lg"></i>
<?php the_post_thumbnail(\'agenda-img\', array(\'class\' => \'fit\')); ?>
</a>
<div class="event-date">
<h1><?php echo get_post_meta($post->ID, "_date", true); ?></h1>
<p class="month"><?php echo get_post_meta($post->ID, "_month", true); ?></p>
<p class="location"><?php echo get_post_meta($post->ID, "_location", true); ?></p>
</div>
<div class="event-name"><p><?php the_title() ?></p></div>
<div class="event-text"><?php the_content(); ?></div>
</div>
<?php endwhile; endif; ?>
</div><!-- /col-->
<div class="col-md-6">
<?php
query_posts(\'post_type=agenda&order=DESC&posts_per_page=2&offset=2\');
if (have_posts()) : while (have_posts()) : the_post();
?>
<div class="event-right">
<a class="cta-button" data-toggle="modal" data-target="#myModal">
<i class="fa fa-chevron-right fa-lg"></i>
<?php the_post_thumbnail(\'agenda-img\', array(\'class\' => \'fit\')); ?>
</a>
<div class="event-date">
<h1><?php echo get_post_meta($post->ID, "_date", true); ?></h1>
<p class="month"><?php echo get_post_meta($post->ID, "_month", true); ?></p>
<p class="location"><?php echo get_post_meta($post->ID, "_location", true); ?></p>
</div>
<div class="event-name"><p><?php the_title() ?></p></div>
<div class="event-text"><?php the_content(); ?></div>
</div>
<?php endwhile; endif; ?>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Attend</h4>
</div>
<div class="modal-body">
<p>Call to action text</p>
<form role="form-horizontal" id="eventform">
<div class="form-group">
<input type="hidden" class="form-control" id="text" value="<?php the_title() ?>" name="text">
</div>
<div class="form-group">
<input type="email" class="form-control" id="email" name="email" placeholder="E-mailadres">
</div>
<button type="submit" id="eventform" class="btn btn-primary btn-lg">Send</button>
</form>
</div>
<div class="modal-footer">
<p>Company name</p>
</div>
</div>
</div>
</div>
</div><!-- /col-->
最合适的回答,由SO网友:Douglas.Sesar 整理而成
好吧,如果您打算收集一篇文章的标题并将其插入一个隐藏字段,那么您可以使用Javascript轻松获取信息。我喜欢使用jQuery,因此您可以做以下几件事:
1) 将标题放入要用户单击的元素的数据属性中。
<div class="event-name">
<p data-title="<?php the_title() ;?>"><?php the_title() ;?></p>
</div>
2)现在将click事件添加到元素:
<script>
jQuery(document).ready(function() {
(function ($) {
$(\'.event-name p\').on( \'click\', function(){
var title = this.getAttribute(\'data-title\');
$(\'#text.form-control\').val(title);
});
})(jQuery);
});
</script>
3)如果您需要在允许用户点击“发送”按钮之前强制用户单击标题,我可以为您提供一个快速片段;只需在评论中作出回应。