如何将PHP字符串中的值回显到循环的不同迭代中


How to echo values from a PHP string into different iterations of a loop

我在WP管理中创建了一个工具,搜索自定义帖子类型($apartments),返回$apartments及其帖子元列表,允许用户选中选中的帖子旁边的复选框,最后通过电子邮件将选中的帖子发送给客户端。这是一个$apartments推荐工具。

目前,我使用一些JS从选定的公寓中获取一串帖子ID以及电子邮件地址,然后将它们发送到查询DB并在使用wp_mail()发送之前返回HTML模板中的这些帖子的函数。

我不保存这些帖子,一切都是在飞行中生成的。评论框(.comments)是在飞行中使用的,我也想将这些传递给查询函数,但是,如果我将这些添加到他们自己的JS字符串中,因为我已经完成了post ID,那么我如何用我的循环将这些回显到他们适当的项目。这里的第一项和第三项都有注释,我如何将注释添加到循环中的第一项和第三项中呢?

我通过ajax将所有这些数据发送到PHP函数,因此这将作为JS字符串发布到PHP函数。

<div class="search-reults">
<ul>
    <li class="item <?php echo $ID; ?>">
        <p>apartmentname</p>
        <textarea class="comments">some comments</texarea>
        <input type="checkbox" name="selectthis">
    </li>
    <li class="item <?php echo $ID; ?>">
        <p>apartmentname</p>
        <textarea class="comments"></texarea>
        <input type="checkbox" name="selectthis">
    </li>
    <li class="item <?php echo $ID; ?>">
        <p>apartmentname</p>
        <textarea class="comments">some comments</texarea>
        <input type="checkbox" name="selectthis">
    </li>
    <li class="item <?php echo $ID; ?>">
        <p>apartmentname</p>
        <textarea class="comments"></texarea>
        <input type="checkbox" name="selectthis">
    </li>
</ul>
</div>
jQuery('.item:has(input:checked)').each(function() {                       
   var str = jQuery(this).find('input[type=checkbox]').val();
   postidstring += postidstring.length > 0 ? ',' + str : str;                   
});

单击此按钮后,通过ajax将postdstring发送给wp_query(),它将在循环中返回公寓并通过wp_mail()发送结果HTML;

那么您想知道如何自动化这个过程?对吧?

首先,需要将公寓列表存储到一个数组中。假设您知道如何通过MySQL查询从DB获取公寓列表,我将跳到下一步。

<?php 
for($i=0; $i<$size_of_apartments; $i++)
{?>
 <li class="item" <?php echo $apartments[$i]['id']; ?>>
    <p><?php echo $apartments[$i]['apartment_name'];?></p>
    <textarea class="comments"><?php echo $apartments[$i]['comments'];?></textarea>
    <input type="checkbox" name="selectthis">
</li>
<?php }?>

希望这对你有所帮助!:)