【问题标题】:PHP/HTML form in Wordpress with MySQL query带有 MySQL 查询的 Wordpress 中的 PHP/HTML 表单
【发布时间】:2012-12-23 10:01:09
【问题描述】:

我正在尝试检索我使用this plugin 设置的 Wordpress 用户组列表,并让用户能够使用this plugin 分别向每个组发送电子邮件。这基本上复制了一个列表服务。

在安装这两个插件并设置组列表后,电子邮件插件显示的是 Wordpress 角色,即编辑/订阅者等,而不是我的自定义组。所以,我打开了发送群组电子邮件的表单,这里是the original trunk

现在从第 97 行修改到第 119 行后,我得到了这样的结果:

<select id="send_roles" name="send_roles[]" multiple="multiple"
        size="8" style="width: 654px; height: 250px;">
            <?php
                $roles = mailusers_get_roles($user_ID, MAILUSERS_ACCEPT_MASS_EMAIL_USER_META);
                foreach ($roles as $key => $value) {
            ?>


<?php
$data = mysql_query("SELECT * FROM wp_groups_group") 
or die(mysql_error()); 
while($info = mysql_fetch_array( $data )) 
{ ?>
<option value="<?php echo $key; ?>" <?php
                    echo (in_array($key, $send_roles) ? ' selected="yes"' : '');?>>
                    <?php
                        printf('%s - %s', __('Group', MAILUSERS_I18N_DOMAIN), $info['name']);
 } 
 ?>
        </option>
            <?php
                }
            ?>
</select>

这很棒,它显示了电子邮件表单。现在有了我的用户组列表,唯一的问题是,无论我选择哪个电子邮件组,它总是将电子邮件发送给所有组中的所有用户。提交表单后,组显示为全部被选中,而不仅仅是我选择的组。

如果有人能提供帮助,我将不胜感激!

我使用的是 Wordpress 3.5。

【问题讨论】:

  • 为什么我被否决了请至少给我一个理由,以便下次更好地回答我的问题:(
  • 感谢您的造型!哈弗。我很高兴这还没有死。
  • 不要担心奇怪的反对票。可能是因为问题可以通过超链接和段落更清晰一些,所以我已经为您改进了。
  • 谢谢 我没有意识到在发布问题时我需要如此精确和干净,下次我会多加注意。 :D 当谈到 PHP 我很糟糕我希望一些可以给我一点见解我有一个有趣的感觉,它可能与提交按钮有关。但天知道!!!
  • Pastie of the html 提交表格之前和pastie of the html 提交表格之后@halfer 再次感谢您的努力!

标签: php html wordpress plugins


【解决方案1】:

这是一个精简的(非 Wordpress)HTML 演示,可帮助您揭示代码的问题:

<html>
<body>

    <?php if ($_POST): ?>
        <?php print_r($_POST); ?>
    <?php endif; ?>

    <form method="post">

        <select id="send_roles"
                name="send_roles[]"
                multiple="multiple"
                size="8"
                style="width: 654px; height: 250px;"
        >
            <option value="registered">Group - Registered</option>
            <option value="mens">Group - Mens group</option>
            <option value="monday">Group - Monday night</option>
            <option value="tueday">Group - Tuesday Night</option>
            <option value="unaffiliated">Group - Unaffiliated</option>
            <option value="alumni">Group - Alumni</option>
        </select>

        <input type="submit" value="Submit" />

    </form>
</body>
</html>

您有两个问题(在示例中均已解决):

  • 您的选项值都相同,这些需要不同
  • 每个选项值都没有关闭,除了最后一个

因此,来自mailusers_get_roles() 的值似乎有问题 - 不要让它们中的每一个都成为“订阅者”。此外,将&lt;/option&gt; 移动到前面的大括号之前,根据需要打开/关闭 PHP 标记。

【讨论】:

  • 好的,我明白了!感谢您的所有帮助@halfer:现在它可以正确输出选项值:&lt;option value="Registered"&gt;Group - Registered&lt;/option&gt; &lt;option value="Mens group"&gt;Group - Mens group&lt;/option&gt; &lt;option value="Monday night"&gt;Group - Monday night&lt;/option&gt; &lt;option value="Tuesday Night"&gt;Group - Tuesday Night&lt;/option&gt; &lt;option value="Unaffiliated"&gt;Group - Unaffiliated&lt;/option&gt; &lt;option value="Alumni"&gt;Group - Alumni&lt;/option&gt; 但现在它告诉我没有找到收件人,不过我会赢的。
  • 不用担心。我建议您避免选项名称中的空格,并按照我的示例使用小写标记。您的方式可行,但这些值应被视为“固定”,因此不会改变,例如,如果您将标签翻译成不同的口语。
  • (旁白:您可能希望将“Mens group”的拼写更改为“Men's group”,因为撇号是表示拥有所必需的。另一个使用小写标记的好理由,因为撇号不能在值中使用。)
  • 谢谢,我现在要更改它们,我试图避免使用斜杠,因此没有撇号。我计划先让它工作......不要敲同样的鼓,但你有什么指示我应该在哪里寻找“没有找到修复的收件人”吗?
  • 不是真的,我怀疑这对您的用例来说非常具体。在整个站点(包括 WP 核心和插件)中进行搜索,以查看引发该错误的原因。那是您提交处理程序的代码部分吗?
猜你喜欢
  • 2014-04-08
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多