如何将SELECT转换为内部带有PHP标记的HTML

时间:2017-07-25 作者:klewis

我很抱歉问这么简单的问题,但我在尝试将下面的echo语句转换为包含php标记的HTML时遇到了很大的困难。我正在尝试让我的自定义metabox正常工作,但它不会保存我的数据,除非我使用以下格式作为回显字符串(非常令人沮丧)。

谢谢你的建议

echo \'<p>
    <label>
    <select name="horizon_sort_listb" id="horizon_sort_listb">
    <option value="0" \'
    .selected($horizon_featured,\'normal\',false)
    .\'>Descending</option>
    <option value="special" \'
    .selected($horizon_featured, \'special\',false)
    .\'>Ascending</option>
    </select><strong>Sort Order B</strong>\'
    .\'</label>
    </p>\';
    ?>

3 个回复
SO网友:Rick Hellewell

示例:您的代码

<option value="0" \'
    .selected($horizon_featured,\'normal\',false)
    .\'>Descending</option>
混合了一些PHP的HTML代码:

<option value="0" <?php echo .selected($horizon_featured,\'normal\',false); ?>>Descending</option>
基本上,你只要<?php echo $something;?> 您希望PHP的东西在哪里。

SO网友:Syed Fakhar Abbas

有两种方法可以做到这一点。

  • printf
  • sprintf

    printf( \'<p>
                <label>
                  <select name="horizon_sort_listb" id="horizon_sort_listb">
                    <option value="0" %s>Descending</option>
                    <option value="special" %s>Ascending</option>
                  </select>
                  <strong>Sort Order B</strong>
                </label>
              </p>\',
              selected( $horizon_featured,\'normal\', false ),
              selected( $horizon_featured, \'special\', false )
            );
    
    如果要将所有格式字符串保存到变量中,请使用sprintf。

SO网友:klewis

我在我的子主题中找到了一种与其他HTML格式保持一致的方法。以下操作很好。

 <p>
            <label>
            <select name="horizon_sort_listb" id="horizon_sort_listb">
            <option value="desc" <?php echo selected($horizon_sort,\'desc\',false)?>>Descending</option>
            <option value="asc" <?php echo selected($horizon_sort,\'asc\',false)?>>Acsending</option>
            </select><strong>Sort Order B</strong>
            </label>
        </p>

结束