Закрывается модальное окно JqModal

T
На сайте с 28.05.2009
Offline
24
1491

Уважаемые форумчане, прошу помощи в решении проблемы с работой формы обратной связи, вызываемой в модальное окно.

Требуется: вывести сообщение об успешной отправке или некорректно заполненных полях в то же модальное окно, где находилась сама форма обратной связи.

Проблема: после нажатия кнопки отправить модальное окно закрывается, и, чтобы увидеть результаты отправки (сообщение об успешной отправке или некорректно заполненных полях), необходимо повторно нажимать на ссылку, вызывающую окно с формой.

Реализовывалось при помощи:

1. Скрипт самой формы feedback.php:

<?

error_reporting(0);
function show_form()
{
?>

<h2>Форма заказа оборудования</h2>
<form action="" method="post" enctype="multipart/form-data">
<label for="input_name[0]">Контактное лицо:</label>
<input name="input_name[0]" type="text" class="textbox" tabindex="1" size="20" maxlength="255" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>" />
<input type="hidden" name="check[]" value="1" />
<label for="input_name[1]">Компания:</label>
<input name="input_name[1]" type="text" class="textbox" tabindex="2" size="20" maxlength="255" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>" />
<input type="hidden" name="check[]" value="2" />
<label for="input_name[2]">Телефон:</label>
<input name="input_name[2]" type="text" class="textbox" tabindex="3" size="20" maxlength="255" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][2])), 0, 500);?>" />
<input type="hidden" name="check[]" value="1" />
<label for="input_name[3]">E-mail:</label>
<input name="input_name[3]" type="text" class="textbox" tabindex="4" size="20" maxlength="128" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][3])), 0, 500);?>" />
<input type="hidden" name="check[]" value="1" />
<label for="input_name[4]">Вас интересует:</label>
<input name="input_name[4]" type="text" class="textbox" tabindex="5" size="20" maxlength="255" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>" />
<input type="hidden" name="check[]" value="2" />
<label for="input_name[5]">Дополнительная информация:</label>
<textarea name="input_name[5]" cols="" rows="" tabindex="6">
<?=substr(htmlspecialchars(trim($_POST['input_name'][5])), 0, 10000);?>
</textarea>
<input type="hidden" name="check[]" value="2" />
<label for="file_name[]">Прикрепить файл:</label>
<input type="file" name="file_name[]" class="filebox" tabindex="7" />
<input type="submit" name="submit" id="requestnow" tabindex="8" value=" " />
</form>

<?
}
function complete_mail() {

$empty_input[] = 'Контактное лицо';
$empty_input[] = 'Компания';
$empty_input[] = 'Телефон';
$empty_input[] = 'E-mail';
$empty_input[] = 'Вас интересует:';
$empty_input[] = 'Дополнительная информация';
for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
$sendemail = 'No';
echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';

}
}
}
if($sendemail == 'No') show_form();
$mess = '';
$mess .= '<h2>Отправка письма с помощью формы заказа оборудования</h2>';
$mess .= '<b>Контактное лицо: </b>'.$_POST['input_name'][0].'<br />';
$mess .= '<b>Компания: </b>'.$_POST['input_name'][1].'<br />';
$mess .= '<b>Телефон: </b>'.$_POST['input_name'][2].'<br />';
$mess .= '<b>E-mail: </b>'.$_POST['input_name'][3].'<br />';
$mess .= '<b>Интересует: </b>'.$_POST['input_name'][4].'<br />';
$mess .= '<b>Дополнительная информация: </b>'.$_POST['input_name'][5].'<br />';
// подключаем файл класса для отправки почты

require($_SERVER['DOCUMENT_ROOT'].'/phpmailer/class.phpmailer.php');

$mail = new PHPMailer();
$mail->From = $_POST['input_name'][3]; // от кого email
$mail->FromName = $_POST['input_name'][0]; // от кого имя
$mail->AddAddress('info@site.ru', 'Компания'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = $_POST['input_name'][4]; // тема письма
$mail->Body = $mess;
$mail->CharSet="utf-8";
$mail->Sender= $_POST['input_name'][3]; // indicates ReturnPath header

// если был файл, то прикрепляем его к письму
if(isset($_FILES['file_name'])) {
if($_FILES['file_name']['error'][0] == 0){
$mail->AddAttachment($_FILES['file_name']['tmp_name'][0], $_FILES['file_name']['name'][0]);
}
}


if($sendemail != 'No'){
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo '<br><br><strong>Спасибо! Ваше сообщение отправлено.</strong>';
}
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

2. Скрипт модального окна JqModal (dev.iceburg.net/jquery/jqModal/)

3. Вызов формы обратной связи:

<a href="#" title="Форма обратной связи" class="jqModal">Оформить заявку</a>

<div class="jqmWindow" id="dialog">
<? include("../feedback.php"); ?>
</div>
<script language="JavaScript" type="text/javascript">
/*<![CDATA[*/ $().ready(function() {
$('#dialog').jqm();
});
/*]]>*/
</script>

Заранее благодарен!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий