#php #wordpress
#php #wordpress
Вопрос:
У меня возникла проблема с созданием действия плагина пользовательской формы на второй странице.
У меня есть имя папки плагина demo1 с двумя разными страницами, похожими alert.php
и demo1.php
Я включил форму demo1.php
и хочу обработать эту форму alert.php
там, где был объявлен запрос на вставку в базу данных.
Вот код
demo1.php
function alert_options()
{
echo '<div class="wrap">
<h2>Alert</h2>
<form method="post" action="<?php echo get_admin_url()."admin-post.php"; ?>">
<input type="hidden" name="action" value="submit-form" />
<input type="hidden" name="title" value="test" />
<input type="hidden" name="content" value="test" />
<p><input type="submit" name="Submit" value="Save Alert" /></p>
</form>
</div>';
}
alert.php
add_action('admin_post_submit-form', '_handle_form_action');
function _handle_form_action()
{
global $wpdb;
$title=$_POST['title'];
$content=$_POST['content'];
$data=array('title'=>$title,'content'=>$content);
$wpdb->insert( 'wp_alerts', $data);
}
Комментарии:
1. пожалуйста, дайте быстрый ответ
2. вопрос не ясен .. какой вывод необходим.??
3. Привет, всякий раз, когда я хочу отправить форму, она переходит к localhost/test/Demo/wp-admin/admin-post.php эта ссылка и показывает пустой, но здесь запрос insert должен работать с данными post
4. Привет, Рупам, ты хочешь вызвать функцию alert_options() из alert.php верно ?
5. Привет, Ганапати, нет, у меня есть объявленная форма в alert_options(), которая содержит demo1.php и я хочу отправить форму с действием alert.php где был объявлен запрос insert.
Ответ №1:
Вы все делаете правильно,
включить alert.php путь к файлу на demo1.php
вот так..
demo1.php
<?php
// Include alert.php file
include_once 'alert.php';
function alert_options() { ?>
<div class="wrap">
<h2>Alert</h2>
<form method="post" action="<?php echo get_admin_url()."admin-post.php"; ?>">
<input type="hidden" name="action" value="submit-form" />
<input type="hidden" name="title" value="test" />
<input type="hidden" name="content" value="test" />
<p><input type="submit" name="Submit" value="Save Alert" /></p>
</form>
</div>
<?php } ?>
alert.php
<?php
add_action('admin_post_submit-form', '_handle_form_action');
function _handle_form_action(){
global $wpdb;
$title=$_POST['title'];
$content=$_POST['content'];
$data=array('title'=>$title,'content'=>$content);
$wpdb->insert( 'wp_alerts', $data);
// redirect after insert alert
wp_redirect(admin_url('admin.php?page=test-url'));
die();
}
Комментарии:
1. @Rupam … Рад помочь.. Это то, что вы хотели?