Поддержка Проблемы и решения Вставка php-формы в поле виджета

  • Есть php файл, при вызове которого запускается форма. Нужно эту форму разместить в виджете. Как это можно сделать?

Просмотр 6 ответов — с 16 по 21 (всего 21)
  • самообучение

    Ключевое слово выделено. Чтобы пользоваться кодом — ему нужно обучиться. И не только кодингу.

    И пользоваться правильным инструментами — этому тоже надо научиться.

    простой ручной скрипт лучше поддается оформлению и пониманию, чем плагин, который может в итоге стать платным или перестать поддерживаться. Зачем простые решения делать через плагин?
    Поэтому прошу повторно посмотреть код

    <?//
    //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:auto;}
        .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>

    чем плагин, который может в итоге стать платным или перестать поддерживаться.

    вы это про contact form 7 с 5 миллионами установок и который полностью бесплатен и поддерживается уже более 12 лет?

    скорее всего это ваш код перестанет работать, чем contact form 7 накроется.

    только начинающие разработчики тащат на свой сайт все «кодом» и отказываются от использования плагинов. но чем опытнее становится разработчик — тем меньше он использует кустарный код и все больше полагается на плагины. потому что легко поддерживать код, когда у тебя один сайт и ты возишься только с ним. но когда сайтов становится много, кустарного кода понапихано куда только можно — что-то перестает работать и ты просто банально не помнишь, где и что у тебя добавлено.

    поэтому вещи, вроде контактной формы или опросов любой опытный разработчик будет делать плагинами. ибо надежных и поддерживаемых плагинов тут навалом.

    а у вас код кустарный и убогий — начиная с кастомного соединения с mysql (гуглите $wpdb), заканчивая подключением jquery из cdn, хотя в wordpress своя версия jquery, работающая в режиме noconflict — это значит, что из-за вашего опроса перестанут работать какие-либо скрипты самого движка и темы.

    вы это про contact form 7 с 5 миллионами установок и который полностью бесплатен и поддерживается уже более 12 лет?

    В данном случае это похоже на код «голосовалки» (в котором нет даже <form> :)). А в остальном всё так и есть.

    почти убедили )

    Андрей Юрьевич (@renak) сделал по вашему совету

Просмотр 6 ответов — с 16 по 21 (всего 21)
  • Тема «Вставка php-формы в поле виджета» закрыта для новых ответов.