2016-12-01 3 views
-1

Я пытаюсь настроить его, поэтому я могу включить один из своих 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, но я не уверен, как ее исправить.

+1

Где находится get_template_part()? – markdwhite

+2

Полная ошибка была бы полезной –

+0

у вас даже есть файл с этой функцией 'get_template_part'? –

ответ

0
`get_template_part() 

- это встроенная функция WordPress и не встроенная функция PHP. Может возникнуть проблема с установкой WordPress.

0

Я не знал, что «get_template_part» из этого другого ответа специфичен для wordpress, который я не использую. Поэтому вместо этого я попытался изменить его на include(), как это было предложено Бартом Бергмансом, и, похоже, он работает нормально.

Спасибо всем!

0

Понятно, что вы собираетесь выбрать имя файла на основе выбора, который вы должны сделать. Но вам должно быть ясно, что вы собираетесь делать после того, как вы сделали выбор. В вашем коде вы использовали функцию get_template_part(), но встроенная функция не существует. Если вы видели в wordpress, вы должны знать, что функция определена где-то. Поэтому вы должны попытаться определить и ваш код.

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> 
Смежные вопросы