首页 > 解决方案 > 如何在wordpress中自动更新显示数据集?

问题描述

嘿伙计们,

我正在使用 php 函数“getData()”从数据库中显示我的数据。它运作良好。当我提交表单“add_action('elementor_pro/forms/new_record',function($record,$ajax_handler)”时,我有另一个将数据插入数据库的函数。也可以。

问题是当我在表单中插入新数据时,显示的数据不会自动更新。

我试图将 getData 函数放在插入数据函数的末尾:

    //Get Data from Database
    function getData(){
        global $wpdb;
    $result = $wpdb->get_results( "SELECT id, first_name, last_name, email FROM demo_table");

    echo "<style>";
    echo "body {font-family: Arial;}";

    echo ".table_container { padding: 10px 12px 0px 12px;  border: 1px solid #ccc;  }";
    echo ".table_container th { background-color:lightblue; color:black; font-weight:bold; border-left: 1px solid white;}";
    echo "</style></head>";
    echo "<body>";

    echo "<div class=\"table_container\"><table>";
    echo "<tr><th style=\"padding-left:10px;\">ID</th><th>Name</th><th>Email</th></tr>";
    foreach ($result as $row) {
        echo "<tr><td>" . $row->id . "</td><td>" . $row->first_name . "  " .$row->last_name . "</td><td>" . $row->email . "</tr>";
    }
    echo "</table></div>";
    }

    

//Insert data in database

    add_action( 'elementor_pro/forms/new_record', function( $record, $ajax_handler ) {
        
        $form_name = $record->get_form_settings( ‘form_name’ );
        
        if ( 'demo' !== $form_name ) {
        }
        
        $raw_fields = $record->get( 'fields' );
        $fields = [];
        foreach ( $raw_fields as $id => $field ) {
            $fields[ $id ] = $field['value'];
        }
        
        global $wpdb;
        $output['success'] = $wpdb->insert('demo_table', array( 'first_name' => $fields['first_name'], 'email' => $fields['email'], 'last_name' => $fields['last_name']));
        
        
        $ajax_handler->add_response_data( true, $output );
       getData();
        
    }, 10, 2);

标签: phpajaxwordpresselementor

解决方案


推荐阅读