基于下拉选择包括PHP文件

基于下拉选择包括PHP文件,php,Php,我正在尝试设置它,以便根据下拉选择包含一个PHP文件。我在这里找到了另一个答案,似乎是这样的,但当我尝试它时,我得到了一个错误“undefined function” 原来的答案在这里 这是我的密码: <?php $includes=array( 'phpfile1'=>'phpfile1.php', 'phpfile2'=>'phpfile2.php' ); if(isset($_POST['cmtype']) &a

我正在尝试设置它,以便根据下拉选择包含一个PHP文件。我在这里找到了另一个答案,似乎是这样的,但当我尝试它时,我得到了一个错误“undefined function”

原来的答案在这里

这是我的密码:

<?php


$includes=array(
         'phpfile1'=>'phpfile1.php',
         'phpfile2'=>'phpfile2.php'
         );

if(isset($_POST['cmtype']) && array_key_exists($_POST['cmtype'], $includes)) :
    get_template_part($includes[$_POST['cmtype']]);
endif;
?>


<form id="selection_form" action="" method="post">
<select name="cmtype" id="cmtype">
<option value="default"> </option>
<option value="phpfile1">PHP file 1</option>
<option value="phpfile2">PHP File 2</option>
</select>
<input type="submit" name="select_mode_submit" value="Get File">
</form>

PHP文件1
PHP文件2
当我选择其中一个选项并点击按钮时,我得到了“get_template_part”的错误。我假设它与IF语句中的函数有关,但我不确定如何修复它

`get_template_part() 
是WordPress内置函数,而不是PHP内置函数。您的WordPress安装可能有问题。

我没有意识到另一个答案中的“获取模板”部分是针对WordPress的,我没有使用它。因此,我试着按照Bart Bergmans的建议,将其改为include(),似乎效果不错


谢谢大家

很明显,您将根据必须进行的选择来选择文件名。但是你应该清楚在你做出选择之后你将要做什么。在代码中使用了get_template_part()函数,但没有类似的内置函数。如果您在wordpress中看到过,您应该知道函数是在某处定义的。因此,您也应该尝试在代码中定义。只需使用include语句即可

<?php
$includes = array(
    'foo'=>'/tmp/foo.php',
    'bar'=>'/tmp/bar.php'
);

if(
    $_SERVER['REQUEST_METHOD'] === 'POST'
    && isset($_POST['cmtype'])
    && array_key_exists($_POST['cmtype'], $includes)
) {
    include $includes[$_POST['cmtype']];
}
?>
<form action="" method="post">
    <select name="cmtype">
        <option value="foo">Foo</option>
        <option value="bar">Bar</option>
    </select>
    <input type="submit" value="Include file">
</form>

福
酒吧

get\u template\u part()是在哪里定义的?完整的错误可能会有用您甚至有一个带有此函数“get\u template\u part”的文件吗?但是我猜$includes数组的值应该没有扩展名,比如:
'phpfile1'=>'phpfile1'
基于文档Your
get\u template\u part()
函数可能不存在。如果需要,您可以将其替换为
include()