2014-12-26 3 views
0

Привет, у меня есть короткий код для разработки плагинов. я пытался использовать разные способы, чтобы результат отображался ** в ** textarea ****. проблема в том, что она не отображается в текстовом поле. ошибка не пустая. Что я делаю не так? вот мой код? надеясь на быстрый ответ.Функция не отображает результаты при вызове

<?php 
add_action('admin_menu','hello_world_plugin'); 
function hello_world_plugin(){ 
    add_options_page('Hello Page','Hello Submenu','manage_options',__FILE__,'Hello_Admin'); 
} 

//Insert Data 
global $wpdb; 
$first = $_POST['firstname']; 
$last = $_POST['lastname']; 
    if(isset($_POST['Submit'])) { 
     $wpdb->insert("wp_options", array(
      "option_name" => $first, 
      "option_value" => $last 
      ) 
     ); 
     echo '<script language="javascript">'; 
     echo 'alert("Data Submitted!")'; 
     echo '</script>'; 
    } 

?>     

<?php 


function Hello_Admin() { 

    echo '<div class = "wrap">'; 
    echo '<h4> Hello World Plugin </h4>'; 
    echo '</div>'; 

    echo '<form action = "" method = "POST">'; 
    echo '<input type="text" name="firstname" placeholder="First Name">'; 
    echo '<input type="text" name="lastname" placeholder="Last Name"><br><br>'; 
    echo '<input type = "submit" name = "Submit" value ="Submit to (wp_options)" class = "button-primary"><br><br>'; 
    echo '<input type = "submit" name = "Display" value ="Display Data from (wp_options)" class = "button-primary"/><br><br>'; 
    display(); 
    echo '</form><br>'; 
} 



function display(){ 
?> 
<textarea cols="50" rows="15"> 

    <?php 
    global $wpdb; 
    if(isset($_POST['Display'])) { 
    $result = $wpdb->get_results (
       " 
       SELECT * FROM wp_options 
       WHERE option_id = '262' 
       " 
     ); 
     print_r($result); 
    } 

    ?> 
</textarea> 

<?php 

    } 

?> 

ответ

0

Я не знаю много о плагинах wordpress, но этот код выглядит странно для меня. В функции display() вы должны сохранить строку в переменной и добавить результат к переменной.

$textarea = '<textarea.....>'; 
    // your wordpress stuff to get the result here 
    $textarea .= $result; 
    $textarea .= '</textarea>'; 

После этого верните $ textarea var и выполните эхо-дисплей(); внутри функции Hello_Admin().

В качестве альтернативы, добавьте текстовое поле для других выходов эха-сигналов в функции Hello_Admin() и использовать функцию дисплея() для возврата сырого результата, как:

echo "<textarea.....>".display()."</textarea"; 
Смежные вопросы