【问题标题】:Assigning links to multiselect fields does not work将链接分配给多选字段不起作用
【发布时间】:2014-10-16 00:26:55
【问题描述】:

所以最近我开始使用 Wordpress 并找到了一个将某些输入值存储在数据库中的插件。此存储有许多选项,其中一个是存储多选字段(选项 A、B 或两者 - 或更多选项,如果您愿意)。

不过,我想通过给存储的值(显然是预定义的)一个特定的链接来调整这个多选存储,比如:选项 A 获取链接 X,而选项 B 获取链接 XX。当该人上传信息(将其放入数据库)时,这些链接不活动,但一旦您显示信息(存储在数据库中 - 因此当您检索数据时)它们就可见。为了让它工作,我想出了以下代码:

    <?php while( $this->have_fields() ) : $this->the_field(); // each field is one cell ?>
      <td class="<?php echo $this->field->name ?>-field">
        <?php
if(!function_exists("value_link")) {
function value_link($value) {
  $map = array(
    'Yes' => 'http://www.google.com',
    'No' => 'http://www.hotmail.com'
  );
  return $map[$value];
}
}

if ($this->field->name === 'edit_link') {
  $output = '';
  $value_array = explode(',', (string) $this->field->value);
  foreach ((array)$value_array as $the_value) {
    $the_value = trim($the_value); // in case there are spaces
    $output .= '<a href="' . value_link($the_value) . '">' . $the_value . '</a> ';
  }
  echo $output;
} else {
  $this->field->print_value();
}
?>
      </td>
  <?php endwhile; // each field ?>
  </tr>
<?php endwhile; // each record ?>
</tbody>  

稍微解释一下; 前几行代码是标准的,它只是回显显示数据的表字段。相关问题代码从第一个 IF 函数开始,我在其中设置指向我创建的 2 个多选选项的链接。

下一个 IF 语句返回与多选相关的一个字段(因此显示数据输入(多选输入)的前端列。好吧,该 IF 语句中的其余部分不言自明,它应该得到多选上传的数据并给出正确的链接。

尽管出于某种原因,$output 仅输出(回显)单词:Array。这是可点击的(如其链接),但是当我点击它时,它会将我重定向到任何内容,好吧,它将我重定向到同一页面而不是上面定义的链接。除此之外,当上传的数据都是两个选项时,它仍然只显示一个数组单词而不是2。

总结如下:

  1. 它只显示单词 Array 而不是 Yes 或 No 选项/值
  2. 这个词有一个链接,但没有将我重定向到定义的链接
  3. 它只显示一个数组字,而数据应该有 2 个数组字(当我上传了是和否时)

有人知道是什么原因造成的吗?

提前致谢!

【问题讨论】:

    标签: php arrays wordpress storage multi-select


    【解决方案1】:

    试试 -_- + ^^

    也许这会解决 PHP 重定向到您的数据存储阵列的问题。

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      相关资源
      最近更新 更多