我正在尝试设置它,以便我可以根据下拉选项包含我的一个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语句中的函数有关,但我不确定如何解决它。
答案 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>