Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279

Вставка php-формы в поле виджета

27.08.2018, 14:25. Показов 1903. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть php файл, при вызове которого запускается форма. Нужно эту форму разместить в виджете.
Как это можно сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.08.2018, 14:25
Ответы с готовыми решениями:

Подключение стороннего виджета на php
Такой вопрос - есть виджет из одной темы на php , как его подключить к другой теме,где зарегестрировать, чтобы в списке виджетов он...

Почему заголовок виджета показывается ниже чем текст виджета
Создал зону виджетов. Создал шорткод. Шорткод вставляю в текстовый виджет. Заголовок виджета почему-то отображается внизу «тела» виджета....

Вставка данных в поле формы из подчиненной
Уважаемые форумчане! Здравствуйте! Подскажите, пожалуйста, как реализовать следующее: после занесения данных в поле подчиненной...

10
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
27.08.2018, 16:39
Искать фрилансера который за вас все сделает или воспользоваться чем то типа плагина "contact form 7"
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
27.08.2018, 21:50  [ТС]
Я сам, это моё хобби) про плагины знаю.....У меня это локальная форма опроса, делаю сам, не через плагин. Потому что сам могу полностью кастомизировать под себя. Весь код написан в php файле. Как его поместить если не в виджет, то хотя бы в div? Может надо в функцию перевести этот код?
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
27.08.2018, 22:15
Цитата Сообщение от jurvrn Посмотреть сообщение
У меня это локальная форма опроса, делаю сам, не через плагин
А сделайте через плагин, ну и в частном случае виджетом. Тогда и будет вам свой виджет.
Если это отдельный файл, то как и все в вордпресс вызывается функцией
PHP
1
 <?php get_template_part( $slug, $name ); ?>
так и вызывайте свой файл в любом месте.. Хоть в диве, хоть без него.....
1
Эксперт HTML/CSS
 Аватар для Fedor92
2964 / 2621 / 1068
Регистрация: 15.12.2012
Сообщений: 10,091
Записей в блоге: 11
27.08.2018, 22:31
jurvrn, поставьте плагин PHP Code Widget, тогда сможете интегрировать php прямо в форму виджета...
1
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
28.08.2018, 03:42
В папке wp-content\plugins\my-widget-plugin создаем файл my-widget-plugin.php
Сохраняем туда этот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?
 
/*
Plugin Name: Название виджета
Description: Описание виджета
Version: 1.0
Author: Ваше ФИО
Author URI: http://www.site.com
*/
 
class my_widget_plugin extends WP_Widget
{
    function __construct()
    {
        parent::__construct(
            'my-widget-plugin',
            'Название виджета',
            array('description' => 'Описание виджета',)
        );
    }
 
    /**
     * Вывод виджета
     * @param array $args
     * @param array $instance
     */
    public function widget($args, $instance)
    {
        $title = apply_filters('widget_title', $instance['title']);
        echo $args['before_widget'];
        if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];
 
        // здесь к выводим форму
        echo '<form method="post">
<label>тестовая форма</label><br/>
<input id="my_field1" name="my_field1">
<input id="my_field2" name="my_field2"><br/>
<input type="submit">
</form>';
 
        // здесь пример вывода данных из формы
        echo "поле1: " . $_POST['my_field1'] . "<br/>";
        echo "поле2: " . $_POST['my_field2'];
 
        echo $args['after_widget'];
    }
 
    /**
     * Настройка виджета. В данном случае заголовок.
     * @param array $instance
     * @return string|void
     */
    public function form($instance)
    {
        if (isset($instance['title'])) {
            $title = $instance['title'];
        } else {
            $title = 'Заголовок виджета';
        }
        ?>
        <p>
            <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
            <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>"
                   name="<?php echo $this->get_field_name('title'); ?>" type="text"
                   value="<?php echo esc_attr($title); ?>"/>
        </p>
        <?php
    }
 
 
    public function update($new_instance, $old_instance)
    {
        $instance = array();
        $instance['title'] = (!empty($new_instance['title'])) ? strip_tags($new_instance['title']) : '';
        return $instance;
    }
}
 
function my_widget_plugin_load()
{
    register_widget('my_widget_plugin');
}
 
add_action('widgets_init', 'my_widget_plugin_load');
Получаем примерно такой плагин-виджет:
Миниатюры
Вставка php-формы в поле виджета  
Изображения
  
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
28.08.2018, 10:27  [ТС]
wwowa, HectorPrima,
вот, мой файл - как его поместить в блок или виджет?
файл называется "polls.php", лежит в каталоге дочерней темы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?
header('Content-Type: text/html; charset=utf-8');
?>
 
<script type="text/javascript"
        src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
 
<?php
$db=mysqli_connect("localhost","***","***","***");
$res=mysqli_query($db,"set names utf8");
 
$res=mysqli_fetch_array(mysqli_query($db,"SELECT max(id) FROM polls LIMIT 1"));
$poll_id=$res[0];
 
if (isset($_GET["poll_id"]) and is_numeric($_GET["poll_id"]) and $_GET["poll_id"]>0){
    $res=mysqli_fetch_array(mysqli_query($db,"SELECT id FROM polls
 WHERE id='".$_GET["poll_id"]."' LIMIT 1"));
    if ($res[0]!='') $poll_id=$res[0];
}
$poll=mysqli_fetch_array(mysqli_query($db,"SELECT id,title FROM polls
WHERE id='".$poll_id."'"));
?>
 
<style type="text/css">
    .polls{padding:10px; text-align:center; border:1px solid #EEEEEE; width:700px;}
    .poll{text-align:left; display:table; width:100%; font-size:14px;}
    .poll label{line-height:2;}
    .votes{text-align:center; background-color:#CCCCFF; border:1px solid #0033FF;
        margin:0 0 10px 0;}
</style>
 
<?php
echo '<div class="polls"><b>'.$poll["title"].'?</b>';
echo '<div class="poll" id="poll_'.$poll_id.'">';
$res=mysqli_query($db,"SELECT id,title FROM poll_answer
    WHERE poll_id='".$poll_id."' ORDER BY id");
while ($answer=mysqli_fetch_array($res)) echo '<label><input type="radio"
    name="item" value="'.$answer["id"].'">'.$answer["title"].'</label><br>';
echo '<div align="center"><input type="submit" id="view_res"
    value="Посмотреть результат">';
echo '<input type="submit" id="vote" value="Голосовать">';
echo '</div></div></div><br>';
?>
 
<script type="text/javascript">
    $(document).ready(function(){
        $(".poll input:first").prop("checked",true);
 
        $("#vote").click(function(){
            jQuery.post("polls_result.php",{poll_id:$(this).parents(".poll").attr("id").
                split('_')[1], answer_id:$('input:checked').val()},rating_poll);});
 
        $("#view_res").click(function(){
            jQuery.post("polls_result.php",{poll_id:$(this).parents(".poll").attr("id").
                split('_')[1]},rating_poll);});
 
        function rating_poll(data){
            $(".poll").fadeOut(500, function(){$(this).html(data).fadeIn(500);});
        }
    });
</script>
Добавлено через 48 минут
разместил строку в футере
PHP
1
<?php get_template_part( 'polls' ); ?>
не вышла моя форма
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
28.08.2018, 12:22
Цитата Сообщение от jurvrn Посмотреть сообщение
Я сам, это моё хобби
Дерзайте. Я вам заготовку дал.
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
28.08.2018, 18:49  [ТС]
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

HectorPrima, спасибо, но я вставил свой код после/вместо
PHP
1
// здесь к выводим форму
, множественные ошибки в линиях... мой код получается не совместим с кодом виджета, компилировать не умею, боюсь затянется доработка )

Добавлено через 1 час 16 минут
Цитата Сообщение от jurvrn Посмотреть сообщение
<?php get_template_part( 'polls' ); ?>
сработало когда убрал из кода php
PHP
1
header('Content-Type: text/html; charset=utf-8');
а этой командой почему не получается в виджете-html вызвать страницу?

Добавлено через 1 час 58 минут
HectorPrima, wwowa, спасибо объединил ваши решения!

собственно вот участок кода который сработал как надо
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
    public function widget($args, $instance)
    {
        $title = apply_filters('widget_title', $instance['title']);
        echo $args['before_widget'];
        if (!empty($title))
            echo $args['before_title'] . $title . $args['after_title'];
 
        // здесь к выводим форму
 
get_template_part( 'polls' );
echo $args['after_widget'];
 
    }
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
30.08.2018, 10:59  [ТС]
HectorPrima, вопрос в догонку - я хочу создать несколько таких виджетов - что мне достаточно поменять? - клонировать папку с разными названиями самой папки. а то если я меняю название папки или файла php - то перестает работать...
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
31.08.2018, 10:45
Лучший ответ Сообщение было отмечено jurvrn как решение

Решение

Ответил в личку
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2018, 10:45
Помогаю со студенческими работами здесь

Вставка формы регистрации PHP в готовый сайт
Господа, может кто-нибудь помочь с этой проблемой? 3 бьюсь над ней, столько форумов и видеоуроков пересмотрел, но не полуается...

Как навести мышку на x,y внутри виджета относительно 0,0 виджета (левого верхнего угла виджета)?
Как навести мышку на x,y внутри виджета относительно 0,0 этого виджета (левого верхнего угла виджета)? Или, как получить координаты x,y...

Вставка фотографий сотрудников через поле подстановки (Поле объекта OLE)
Добрый день! Помогите плиз. Смысл такой, необходимо, чтобы при смене работника, менялась его фотография в форме. Лучше, если эти...

Вызов виджета из формы
Я в qt немного новичок, но отчаянно пытаюсь перестать таковым быть и написать хотя бы какую-нибудь примитивную игру. Создал приложение,...

QML - изменение содержимого формы по клику кнопки и виджета
Доброго дня всем!!! стоит задача - на qml написать прогу, где есть возможность изменения содержимого формы на другое содержимое по клику по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru