调用时,函数不显示结果

时间:2014-12-26 02:05:58

标签: php wordpress wordpress-plugin

嗨我这里有一个简短的代码用于插件开发。我一直在尝试不同的方式,以便在** textarea ****中显示结果。问题是它没有出现在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  

    }

?>

1 个答案:

答案 0 :(得分:0)

我对wordpress插件了解不多,但是这段代码对我来说很奇怪。在函数display()中,您应该将字符串存储到变量中并将结果添加到变量中。

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

之后,返回$ textarea var并执行echo display();在Hello_Admin()函数内部。

作为替代方案,将textarea添加到Hello_Admin()函数中的其他echo输出,并使用display()函数返回原始结果,如:

echo "<textarea.....>".display()."</textarea";