Вставка php-формы в поле виджета
-
Есть php файл, при вызове которого запускается форма. Нужно эту форму разместить в виджете. Как это можно сделать?
-
самообучение
Ключевое слово выделено. Чтобы пользоваться кодом — ему нужно обучиться. И не только кодингу.
И пользоваться правильным инструментами — этому тоже надо научиться.
простой ручной скрипт лучше поддается оформлению и пониманию, чем плагин, который может в итоге стать платным или перестать поддерживаться. Зачем простые решения делать через плагин?
Поэтому прошу повторно посмотреть код<?// //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) сделал по вашему совету
- Тема «Вставка php-формы в поле виджета» закрыта для новых ответов.