У меня действительно нет идеи с этой проблемой. Я создаю новый плагин. Структура проста: div FreeQuotation_wrap2 (отображает таблицу), div FreeQuotation_wrap3 (вставить новые данные). Но после того, как новые данные и нажмите кнопку отправить страницу обновляется со старыми данными.Wordpress обновить таблицу после ввода новых данных
Когда я нажимаю кнопку «Обновить», я вижу информацию о том, что она будет пересылать данные в базу данных. Все в порядке - я помешал ему с уникальным. Теперь я вижу новую таблицу с новой записью. Как я могу сделать это автоматически?
Я пробую 3 метода: onSubmit = "" (не работает) и javascript (window.location = "...") и трюк с сеансом (я получаю заголовки ошибок, уже отправленные ...).
<?php
global $FreeQuotation_version;
global $wpdb;
echo $table_name;
global $today_date;
$table_name = $wpdb->prefix . 'free_quotation_kic';
?>
<div class="FreeQuotation_wrap">
<h2><div class="FreeQuotation_header"></div> FreeQuotation <?php echo $FreeQuotation_version; ?></h2><br>
</div>
<div class="FreeQuotation_wrap2">
<table class="widefat">
<?php
$FreeQuotation_table = $wpdb->get_results(
"
SELECT *
FROM $table_name
ORDER BY adding_date DESC
LIMIT 0 , 10
"
);
//nagłówek
echo '<thead><tr><th> ID </th><th> Quotation </th><th> Author </th><th> Display Date </th><th> Delete </th></tr></thead>';
//treść
foreach ($FreeQuotation_table as $ogresults)
{
echo '<tr><td>';
echo $ogresults->id;
echo '</td><td>';
echo $ogresults->quotation;
echo '</td><td>';
echo $ogresults->author;
echo '</td><td>';
echo $ogresults->display_date;
echo '</td></tr>';
}
echo '<tfoot><tr><th> ID </td><th> Quotation </td><th> Author </td><th> Display Date </th><th> Delete </td></tr></tfoot>';
?>
</table>
</div>
<div class= "FreeQuotation_wrap3">
<form method="post" action="options.php">
<?php settings_fields('FreeQuotation_settings_filed'); ?>
<?php $options = get_option('FreeQuotation_options'); ?>
</form>
<?php
global $current_user;
$ufUserID = $current_user->ID;
$quotation = $_POST["quotation_textarea"];
$author = $_POST["autor_text"];
$display_date = $_POST["display_date"];
$url = $_SERVER['PHP_SELF'];
$adding_date = $today_date;
echo $url;
if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'updateFeedback') {
$FreeQuotation = $wpdb->insert('wp_free_quotation_kic', array('quotation' => $quotation, 'author' => $author, 'display_date' => $display_date, 'adding_date' => $adding_date,));
}?>
<a href="<?php echo $url;?>">TUTAJ</a>
<h3 class="widget-title">Add quotation</h3>
<form id='reloader' method='post' onSubmit="<?php echo $url;?>">
<table class="widefat" >
<thead>
<tr><th>Quotation</th><th>Author</th><th>Display Date</th></tr>
</thead>
<tbody>
<tr><td>
<textarea rows="1" cols="100" name="quotation_textarea" required></textarea>
</td>
<td>
<input type="text" name="autor_text" required></input>
</td>
<td>
<input type="text" name="display_date" required></input>
</td></th>
</tbody>
<tfoot>
<tr><th>
<input class="button button-primary" type="submit" name="submit" value="submit"/>
<?php wp_nonce_field('updateFeedback'); ?>
<input name="action" type="hidden" id="action" value="updateFeedback"/>
</th></td>
</tfoot>
</table>
</form><br>
</div>
<div class="FreeQuotation_wrap4">
<h3>Zmiany:</h3>
</div>
<?php
?>
Помогите мне? Это мой первый вопрос аренды (и я считаю, что последнее ...). Обычно, когда я пытаюсь написать вопрос, я нахожу ответ быстро :) Теперь я провожу несколько часов с этой проблемой, и я не вижу никакого решения ...
Еще раз: * Не использовать пользовательские таблицы в WordPress, если вы можете легко избежать их * [ Вот почему и как его избежать] (http://stackoverflow.com/questions/20056441/developing-a-wordpress-plugin-seo-friendly/20056568#20056568) Это даст вам всевозможные полезные преимущества. Как «WP_Query», тегирование, категории, пули ... – Gant
Я знаю WP_Query и т. Д., И я использую его, когда могу. Мне нужно использовать пользовательскую таблицу в другой ситуации, и именно поэтому я пытаюсь использовать ее в этом плагине. –