PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 7
SpiritHG
Отправлено: 31 Января, 2015 - 01:22:18 • Тема: Нужно сделать обработку событий в Ajax • Форум: Вопросы новичков
Ответов: 12 Просмотров: 370
Может, если Вы еще не убежали - поможете?
(Добавление)
Мне главное, чтобы при добавлении name и email в поле подписки на новинки страница не перегружалась... а просто давала уведомление типа "Вы подписались, Спасибо"
А обработчик - это часть большого скрипта ... мне нужно просто умудриться записать туда данные без перезагрузки страницы
SpiritHG
Отправлено: 31 Января, 2015 - 01:12:35 • Тема: Нужно сделать обработку событий в Ajax • Форум: Вопросы новичков
Ответов: 12 Просмотров: 370
Дааа. Скорее всего он не обработчик
А может быть это обработчик:
PHP:
скопировать код в буфер обмена
<?PHP
if ( $_POST [ 'action' ] ) {
$_POST [ 'name' ] = trim ( $_POST [ 'name' ] ) ; $_POST [ 'email' ] = trim ( $_POST [ 'email' ] ) ;
if ( empty ( $_POST [ 'name' ] ) ) error
( $PNSL [ "lang" ] [ "error" ] [ "empty_your_name" ] ) ; if ( empty ( $_POST [ 'email' ] ) ) error
( $PNSL [ "lang" ] [ "error" ] [ "empty_email" ] ) ; if ( check_email( $_POST [ 'email' ] ) ) error( $PNSL [ "lang" ] [ "error" ] [ "wrong_email" ] ) ;
if ( $data -> checkExistEmail ( ) ) error( $PNSL [ "lang" ] [ "error" ] [ "subscribe_is_already_done" ] ) ;
$settings = $data -> getSetting ( ) ;
$token = getRandomCode( ) ;
$status = $settings [ 'require_confirm' ] == 'yes' ? 'active' : 'noactive' ;
$fields [ 'id_user' ] = 0 ;
$fields [ 'name' ] = $_POST [ 'name' ] ;
$fields [ 'email' ] = $_POST [ 'email' ] ;
$fields [ 'ip' ] = getIP( ) ;
$fields [ 'token' ] = $token ;
$fields [ 'time' ] = date ( "Y-m-d H:i:s" ) ; $fields [ 'status' ] = $status ;
$fields [ 'time_send' ] = '0000-00-00 00:00:00' ;
$insert_id = $data -> makeSubscribe ( $fields ) ;
if ( $insert_id ) {
$isert = $data -> insertSubs ( $insert_id ) ;
$result = $data -> sendNotification ( $insert_id , $token ) ;
echo '<!DOCTYPE html>' ;
echo "<html>\n " ;
echo "<head>\n " ;
echo "<meta http-equiv=\" Content-Type\" content=\" text/html; charset=utf-8\" >\n " ;
echo "<title>" . $PNSL [ "lang" ] [ "subject" ] [ "subscription" ] . "</title>\n " ;
echo "</head>\n " ;
echo "<body>\n " ;
echo '<p style="text-align: center">' ;
if ( $settings [ 'require_confirm' ] == "yes" )
echo $PNSL [ "lang" ] [ "msg" ] [ "add_subscribe1" ] ;
else
echo $PNSL [ "lang" ] [ "msg" ] [ "add_subscribe2" ] ;
echo "<br><br><a href=http://" . $_SERVER [ 'SERVER_NAME' ] . ">" . $PNSL [ "lang" ] [ "str" ] [ "go_to_homepage" ] . "</a>\n " ;
echo "</p>\n " ;
echo "</body>\n " ;
echo "</html>" ;
}
else {
error( $PNSL [ "lang" ] [ "error" ] [ "subscribe" ] ) ;
}
}
//require temlate class
require_once $PNSL [ "system" ] [ "dir_root" ] . $PNSL [ "system" ] [ "dir_libs" ] . "html_template/SeparateTemplate.php" ;
$tpl = SeparateTemplate:: instance ( ) -> loadSourceFromFile ( $PNSL [ "system" ] [ "template" ] . "subform.tpl" ) ;
//form
$tpl -> assign ( 'TITLE_SUBSCRIBE' , $PNSL [ "lang" ] [ "title" ] [ "subscribe" ] ) ;
$tpl -> assign ( 'ACTION' , "http://" . $_SERVER [ "SERVER_NAME" ] . root( ) . "?task=subform" ) ;
$tpl -> assign ( 'STR_NAME' , $PNSL [ "lang" ] [ "table" ] [ "name" ] ) ;
$tpl -> assign ( 'STR_EMAIL' , $PNSL [ "lang" ] [ "table" ] [ "email" ] ) ;
$tpl -> assign ( 'BUTTON_SUBSCRIBE' , $PNSL [ "lang" ] [ "button" ] [ "subscribe" ] ) ;
$arr = $data -> getCategoryList ( ) ;
foreach ( $arr as $row ) {
$rowBlock = $tpl -> fetch ( 'row' ) ;
$rowBlock -> assign ( 'ID_CAT' , $row [ 'id_cat' ] ) ;
$rowBlock -> assign ( 'NAME' , $row [ 'name' ] ) ;
$tpl -> assign ( 'row' , $rowBlock ) ;
}
// display content
$tpl -> display ( ) ;
?>
По моему он больше похож
SpiritHG
Отправлено: 31 Января, 2015 - 00:49:34 • Тема: Нужно сделать обработку событий в Ajax • Форум: Вопросы новичков
Ответов: 12 Просмотров: 370
3d_killer Спасибо большое! Ваш вариант не молчит и хоть начал ошибку выдавать, значит мы близко
Но по моему - это не из-за того, что Вы написали, а из-за того, что обработчик на поддомене... может быть такое?
Или я из скрипта за обработчика не того принял... т.к. в самом скрипте адрес обработчика показан так : http://сайт/?task=subform
Пожалуйста помогите еще немного
Вот изначальная форма:
CODE (
html ):
скопировать код в буфер обмена
<form id = "myForm" action = "http://mailer.magelit.com.ua/?task=subform" method = "post" >
<table border = "0" >
<tr ><td > Имя</ td ><td style = "width: 70%;" ><input size = 40 type = text name = name></ td ></ tr >
<tr ><td > E-mail</ td ><td style = "width: 70%;" ><input size = 40 type = text name = email></ td ></ tr >
</ form >
</ table ><br >
<div class = "btn-cart m-b_15" ><input type = submit value = "Подписаться" style = "width:200px;" ></ div >
<input type = hidden name = action value = post>
Она работает, но переправляет на другую страницу. В верхней форме на этой странице можно проверить: _http://magelit.com.ua/shop/product/chanel-coco-mademoiselle-eau-de-toilette-tualetnaia-voda-shanel
А нижняя форма выдает ошибку (На сайте она чуть ниже рабочей формы)
CODE (
html ):
скопировать код в буфер обмена
<form id = "form_new" >
<table border = "0" >
<tr ><td > Имя</ td ><td ><input size = "40" type = "text" name = "name" ></ td ></ tr >
<tr ><td > E-mail</ td ><td ><input size = "40" type = text name = "email" ></ td ></ tr >
<tr ><td ></ td ><td ><input type = 'button' onClick = "call()" value = "Подписаться" ></ td ></ tr >
</ table >
</ form >
<div id = "result" ></ div >
Посмотрите пожалуйста, мне кажется я упустил где-то, что-то не значительно (
(Добавление)
Вот обработчик по моему:
CODE (
html ):
скопировать код в буфер обмена
<!DOCTYPE html>
<html >
<head >
<title > Subscript</ title >
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
</ head >
<body >
<?PHP
$url = "http://" .$_SERVER[ "SERVER_NAME" ] .root( ) ."index.php?task=subform" ;
$get_content = file( $url) ;
$get_content = implode( $get_content, "\r\n" ) ;
preg_match( "/<div class=\" subform\"> (.*)<\/ div> /isU", $get_content, $out);
echo $out[1];
function root()
{
if(dirname($_SERVER['SCRIPT_NAME']) == '/' | dirname($_SERVER['SCRIPT_NAME']) == '\') return '/';
else return dirname($_SERVER['SCRIPT_NAME']) . '/';
}
?>
</ body >
</ html >
Вот его страница: _mailer.magelit.com.ua/form.php (посмотрите и я потом удалю эту ссылку)
SpiritHG
Отправлено: 31 Января, 2015 - 00:03:46 • Тема: Нужно сделать обработку событий в Ajax • Форум: Вопросы новичков
Ответов: 12 Просмотров: 370
Это я знаю... я добавлял код на ту страницу, на которой форма ставится.
<script type="text/javascript" src="http://magelit.com.ua/templates/beautyStore/js/jquery-1.8.3.min.js"></script>
И скрипт: CODE (
htmlphp ):
скопировать код в буфер обмена
< script type= "text/javascript" language= "javascript" >
function call( ) {
$. ajax( {
type: 'POST' ,
url: 'Адрес обработчика (на поддомене)' ,
data: msg,
success: function( data) {
$( '.results' ) . html( data) ;
} ,
error: function( xhr, str) {
alert( 'Возникла ошибка: ' + xhr. responseCode) ;
}
} ) ;
}
</ script>
Но не помогло
SpiritHG
Отправлено: 30 Января, 2015 - 21:03:47 • Тема: Нужно сделать обработку событий в Ajax • Форум: Вопросы новичков
Ответов: 12 Просмотров: 370
По моему это не ответ на мой вопрос, почему?
Решение есть? Просто очень нужно... к утру работу сдать должен (
(Добавление)
Кстати, если это потребует оплаты - много сейчас на кошельке не имею, но примерно 150 рублей есть
(Добавление)
Не сочтите за наглость, просто мне очень нужна помощь. Вместо того, чтобы пить пиво - я сижу и мучаюсь с этим кодом...
PLEESE HELP
SpiritHG
Отправлено: 30 Января, 2015 - 20:33:35 • Тема: Нужно сделать обработку событий в Ajax • Форум: Вопросы новичков
Ответов: 12 Просмотров: 370
Добрый день.
Есть форма подписки:
CODE (
html ):
скопировать код в буфер обмена
<form action = "http://сайт/?task=subform" method = "post" >
<table border = "0" >
<tr ><td > Имя</ td ><td ><input size = 40 type = text name = name></ td ></ tr >
<tr ><td > E-mail</ td ><td ><input size = 40 type = text name = email></ td ></ tr >
<tr ><td ></ td ><td ><input type = submit value = "Подписаться" ></ td ></ tr >
<input type = hidden name = action value = post>
</ form >
</ table >
И есть обработчик: (на сколько я правильно понял )
Файл на поддомене - form.php
Со следующим содержанием:
PHP:
скопировать код в буфер обмена
<!DOCTYPE html>
<html>
<head>
<title>Subscript</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?PHP
$url = "http://" . $_SERVER [ "SERVER_NAME" ] . root( ) . "index.php?task=subform" ;
$get_content = file ( $url ) ; $get_content = implode ( $get_content , "\r \n " ) ;
preg_match ( "/<div class=\" subform\" >(.*)<\/div>/isU" , $get_content , $out ) ;
echo $out [ 1] ;
function root( )
{
if ( dirname ( $_SERVER [ 'SCRIPT_NAME' ] ) == '/' | dirname ( $_SERVER [ 'SCRIPT_NAME' ] ) == '\') return ' / '; else return dirname($_SERVER[' SCRIPT_NAME']) . ' / ';
}
?>
</body>
</html>
Моя задача сделать чтобы при добавлении емаил и имя и последующего нажатия кнопки добавить - ответ событий появлялся не перегружая страницы, то есть в Ajax
А так как есть - этот скрипт при добавлении данных отправляет на отдельную страницу.... http://сайт/?task=subform
(Добавление)
Не знаю еще как на форуме отредактировать...
Ребята! Очень нужна помощь! Завтра работу сдавать...
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB