2016-12-01 5 views
-1

Ich versuche, es einzurichten, damit ich eine meiner PHP-Dateien basierend auf einer Dropdown-Auswahl aufnehmen kann. Ich habe hier eine andere Antwort gefunden, die das zu tun scheint, aber wenn ich es versuche, erhalte ich den Fehler "undefined function".Include PHP-Datei basierend auf Dropdown-Auswahl

Die ursprüngliche Antwort ist Original

Hier ist mein Code:

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

Wenn ich eine der beiden Optionen wählen und drücken Sie die Taste erhalte ich die Fehler für ‚get_template_part‘. Ich nehme an, es hat etwas mit der Funktion in der IF-Anweisung zu tun, aber ich bin mir nicht sicher, wie es zu beheben ist.

+1

Wo ist get_template_part() definiert? – markdwhite

+2

Der volle Fehler wäre nützlich –

+0

hast du sogar eine Datei mit dieser Funktion 'get_template_part'? –

Antwort

0
`get_template_part() 

ist WordPress eingebaute Funktion und ist nicht PHP in Funktion gebaut. Möglicherweise liegt ein Problem mit Ihrer WordPress-Installation vor.

0

Ich erkannte nicht "get_template_part" von dieser anderen Antwort ist spezifisch für Wordpress, die ich nicht verwende. Also habe ich stattdessen versucht, es zu ändern() statt wie von Bart Bergmans vorgeschlagen und das scheint gut zu funktionieren.

Vielen Dank!

0

Es ist klar, dass Sie zur Auswahl den Dateinamen basierend auf der Auswahl, die Sie vornehmen müssen. Aber Sie sollten klar sein, was Sie tun werden, nachdem Sie die Auswahl getroffen haben. In Ihrem Code haben Sie die Funktion get_template_part() verwendet, aber es gibt keine eingebaute Funktion wie diese. Wenn Sie in der WordPress gesehen haben, sollten Sie wissen, dass die Funktion irgendwo definiert ist. Sie sollten also versuchen, auch in Ihrem Code zu definieren.

0

Verwenden Sie einfach die Include-Anweisung.

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