РЕДАКТИРОВАТЬ Я решил большинство проблем по этому вопросу, переписав сценарий.Тем не менее, есть еще одна проблема, которую я опубликовал как новый вопрос .
Проблема Нажатие на кнопку отправки не удается, но только на страницах 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;
});
});
});
Буду признателен за любые предложения в качестве возможной причины проблемы.
Спасибо.