根据下拉列表选择包含PHP文件

时间:2016-12-01 14:32:21

标签: php

我正在尝试设置它,以便我可以根据下拉选项包含我的一个PHP文件。我在这里找到了另一个答案,但是当我尝试它时,我得到一个错误“未定义的函数”。

原始答案在Original

这是我的代码:

<?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>

当我选择其中一个选项并按下按钮时,我收到'get_template_part'的错误。我假设它与IF语句中的函数有关,但我不确定如何解决它。

4 个答案:

答案 0 :(得分:0)

`get_template_part() 

是WordPress内置函数,而不是PHP内置函数。 WordPress安装可能有问题。

答案 1 :(得分:0)

我没有意识到“get_template_part”来自其他答案特定于wordpress,我没有使用。所以我尝试将其更改为include(),而不是像Bart Bergmans所建议的那样,看起来效果很好。

全部谢谢!

答案 2 :(得分:0)

很明显,您将根据您必须做出的选择来选择文件名。但是你应该清楚你做出选择后你打算做什么。在您的代码中,您使用了get_template_part()函数,但没有像这样的内置函数。如果你在wordpress中看到过,你应该知道函数是在某个地方定义的。所以你应该尝试在你的代码中定义。

答案 3 :(得分:0)

只需使用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>