Используя плагин jquery форм с Wordpress - PullRequest
2 голосов
/ 15 июня 2011

РЕДАКТИРОВАТЬ Я решил большинство проблем по этому вопросу, переписав сценарий.Тем не менее, есть еще одна проблема, которую я опубликовал как новый вопрос .

Проблема Нажатие на кнопку отправки не удается, но только на страницах Wordpress.Статические страницы работают как положено.

Вопрос Есть ли у кого-нибудь опыт использования jquery.form внутри Wordpress, и если да, то есть ли у этого плагина какие-либо особые требования для его работы в WP?

Сценарий Я пытаюсь использовать jquery.form для обработки формы, которая появляется в диалоге.Расположение работает на статических страницах на сервере, за пределами WP, но в том же домене.Однако, когда форма представлена ​​в диалоговом окне на странице WP, функция отправки завершается ошибкой, что обычно приводит к закрытию диалогового окна, не передавшего форму.Плагин и запускающий скрипт поставлены в очередь.Там, где я могу видеть это, и это уместно, я изменил $ на jQuery.

Я ищу идеи о том, почему происходит сбой.

Один вопрос, который возник у меня, этоКак реагируют плагины jquery, если они используются с Wordpress относительно использования «$»?Возможно, это не проблема, но мне было интересно, может ли это быть причиной проблемы здесь.

Сценарий запуска - это просто стандартный сценарий с несколькими добавленными параметрами, опять же, он работает на статических страницах:

jQuery(document).ready(function($) {
var options = {
    target : '#output1',
    url:    'form1_processing.php',
    clearForm:  'true'

};
// bind 'myForm' and provide a simple callback function 
jQuery('#myform').ajaxForm(options);
return false;
});

php для обработки формы приведен ниже, обратите внимание, что при любых слабостях он может работать на статических страницах.

<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL & ~ E_NOTICE);
if (isset ($_POST['submit'])) {//Handle the form
if ($dbc = @mysql_connect('localhost', 'DB-user', 'DB-password'))  {

    if (!@mysql_select_db ('DB-name')) {
        die ('<p>Could not select the database because <b>' . mysql_error() . '</b></p>');
    }
}else{
    die('<p>Could not connect to MySQL because <b>' . mysql_error() . '</b></p>');
}
//Define the query
$query = "INSERT INTO table-name (ID, name,  url_problem, description, url, browser, operating_system,date_entered) 
VALUES (0, '{$_POST['name']}', '{$_POST['url_problem']}', '{$_POST['description']}','{$_POST['url']}','{$_POST['browser']}','{$_POST['operating_system']}',NOW())";


//Execute the query
if (@mysql_query ($query)) {
    print '<p class="response">Your comment has been added. Please close the form and continue with your evalation. Thank you.</p>';
}else{
    print "<p>Could not add your comment because <b>" . mysql_error() . "</b> The query was $query.</p>";
}
mysql_close();
}
?>

Скрипт диалога

jQuery(document).ready(function() {
jQuery('#openform a').each(function() {
    var cancel = function() {
        $dialog.dialog('close');
    };
    var $link = jQuery(this);
    var $dialog = jQuery('<div></div>')
        .load($link.attr('href'))
        .dialog({
            autoOpen: false,
            title: $link.attr('title'),
            width: 700,
            height: 800,
            modal:  true,
            //buttons: { "Close": cancel, "Cancel": cancel},
            beforeClose: function (event, ui) {//clear previous success messages
                jQuery("div#output1, div#output2, div#output3").empty();
                },
            open:   function (event,ui) {//write the url value into the form
                jQuery("input[name='url']").val(pageAddress);
                }
        });

    $link.click(function() {
        $dialog.dialog('open');
        jQuery( "#accordion" ).accordion({
            collapsible: true,
            active: false,
            fillSpace: true,
            clearStyle: true
        });
        return false;
    });
});

});

Буду признателен за любые предложения в качестве возможной причины проблемы.

Спасибо.

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