PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (3): « 1 2 [3]
Найдено сообщений: 45
madlabel
Отправлено: 09 Сентября, 2015 - 00:17:40 • Тема: Checkbox'ы и отправка формы (пустой ответ) • Форум: JavaScript & VBScript
Ответов: 5 Просмотров: 827
lastdays пишет: Посмотри через инструмент разработчика, добавился ли класс, скорее всего надо сначала его добавить, а потом удалить текущие.
Попробовал как сказали, эффекта нуль. Класс добавился (enable & loading убрались), при повторном клике ничего не происходит.
madlabel
Отправлено: 08 Сентября, 2015 - 22:38:06 • Тема: Checkbox'ы и отправка формы (пустой ответ) • Форум: JavaScript & VBScript
Ответов: 5 Просмотров: 827
Проблему с флажками решил.
Другая беда.
CODE (
javascript ):
скопировать код в буфер обмена
$( "a.enable" ) .click ( function ( ) {
var icon = $( this ) ;
var line = icon.closest ( ".a" ) ;
var id = line.find ( 'input[type="checkbox"][name*="check"]' ) .val ( ) ;
var state = line.hasClass ( 'enable' ) ? 0: 1 ;
icon.addClass ( 'loading' ) ;
$.ajax ( {
type : 'POST' ,
url: '/engine/modules/admin/ajax/update.php' ,
data: { 'object' : 'menu' } ,
success: function ( data) {
icon.removeClass ( 'loading' ) ;
icon.removeClass ( 'enable' ) ;
icon.addClass ( 'disable' ) ;
}
} ) ;
return false ;
} ) ;
$( "a.disable" ) .click ( function ( ) {
alert ( 2) ;
} ) ;
Суть в том, есть иконка при нажатии на которую отправляются данные скрипту и меняется класс иконки на disable если пришел положительный от скрипта ответ.
Первую задачу скрипт делает - отправляет данные + меняет класс на disable. Но, при повторном клике на иконку ничего не происходит ( alert(2); ) не вылазит.
В чём подвох?
madlabel
Отправлено: 06 Сентября, 2015 - 14:13:36 • Тема: Обновление значений textarea • Форум: Вопросы новичков
Ответов: 1 Просмотров: 143
Есть обычный textarea в который я заношу свойства товара в бд (отдельная табличка options).
Пример:
свойство 1
свойства 2
и т.д..
Так вот, не могу понять как правильно обновлять их.
Если я например удалю одно из свойств и сохраню форму - то что делать на стороне сервера? Сносить (DELETE * FROM options) все данные таблицы к данному товару и заносить их по новому? в таком случае слетят свойства у всех товаров. Как быть? Хотя бы на теории может кто посоветует.
madlabel
Отправлено: 03 Сентября, 2015 - 14:22:46 • Тема: Объединение 4х таблиц • Форум: SQL и Архитектура БД
Ответов: 5 Просмотров: 64
DlTA пишет: SELECT DISTINCT `r`.`id`, .....
групировку убрать, получите все возможные варианты
Помогло, но не на 100%, +заменил LEFT JOIN на JOIN - стал ближе к успеху, но всё таки что-то не так.
(Добавление)
На выходе у меня получилось:
Спойлер (Отобразить ) Array
(
[0] => Array
(
[id] => 1
[property_value] => 2
[all_properties] => Москва,Питер,Красноярск,Мухохянск
[property_title] => Город
[category_title] => Аренда недвижимости
)
[1] => Array
(
[id] => 1
[property_value] => 1
[all_properties] => 1,2,3,4,5
[property_title] => Комнат
[category_title] => Аренда недвижимости
)
[2] => Array
(
[id] => 2
[property_value] => 1
[all_properties] => Москва,Питер,Красноярск,Мухохянск
[property_title] => Город
[category_title] => Аренда недвижимости
)
)
Выводит мне: к первому объекту город, ко второму объекту город и комнаты. (в сумме 3) Но мне бы объеденить бы это все, дабы получилось на выходе 2 значения.
как быть?
madlabel
Отправлено: 03 Сентября, 2015 - 13:34:09 • Тема: Объединение 4х таблиц • Форум: SQL и Архитектура БД
Ответов: 5 Просмотров: 64
Имеется в арсенале 4 таблицы:
1.realty -> Недвижимость (id, img)
---
2.properties -> Свойства (id, titile, value)
где titile -> Название свойства, value -> значение (в виде: 1,2,3)
Пример: 1|Город|Москва,Питер,Красноярск
---
3.categories -> Категории (id, titile)
titile - Название категории
Пример: 1|Продажа
---
4.properties_realty -> Таблица связка (недвижимость & свойство) (id,realty_id,property,value)
Пример: 1|1|1|2 --> Где 2 это
$value = exploder(',',$row['values']);
$value = properties.value[2];
если смотреть по примеру Выше это будет город Красноярск.
Схема обычных свойств товаров (в моём случае свойств каталога недвижимости), дабы можно было удалять и добавлять новые свойства.
Задача: вывести всю недвижимость при этом все свойства к ним + категорию.
Делал так:
CODE (
SQL ):
скопировать код в буфер обмена
SELECT `r` . `id` ,
`pr` . `value` AS property_value,
`p` . `value` AS all_properties,
`p` . `title` AS property_title,
`c` . `title` AS category_title
FROM `realty` AS r
LEFT JOIN `properties_realty` AS pr
ON `pr` . `realty_id` = `r` . `id`
LEFT JOIN `properties` AS p
ON `p` . `id` = `pr` . `property`
LEFT JOIN `categories` AS c
ON `c` . `id` = `r` . `category`
GROUP BY p. realty_id
ORDER BY `r` . `id` DESC
Но, в запросе стоит GROUP by p.realty_id и он выводит на экран мне только первые свойства, т.е. если в таблице свойств есть еще какие-то свойства, помимо города, скажем площадь, то их он проигнорирует. Если убрать группировку то выведет мне x2 записей.
Верно ли составил запрос? Как все это правильно сделать?
Может есть какие-то идеи. Буду рад любым примерам.
madlabel
Отправлено: 29 Августа, 2015 - 18:18:24 • Тема: preg_replace • Форум: Вопросы новичков
Ответов: 3 Просмотров: 191
Не подскажете ли как заменить выражение {* любой текст *} с помощью preg_replace?
madlabel
Отправлено: 16 Августа, 2015 - 14:37:39 • Тема: Робокасса • Форум: Вопросы новичков
Ответов: 1 Просмотров: 222
Поглядел доки робокассы, вроде что-то получилось, всё ли верно сделано? +Не понимаю различия succes & result ответа робокассы.
Спойлер (Отобразить )
<?php
if(!defined('MOZG')) die('Hacking attempt!');
isset($_GET['act']) ? $_GET['act'] = $_GET['act'] : $_GET['act'] = NULL;
$merchant_login = "логин";
$merchant_password_1 = "пароль1";
$merchant_password_2 = "пароль2";
switch($_GET['act']){
/* Payments success || Успешное проведение платежа */
case "success":
$sum = intval($_REQUEST["OutSum"]);
$invoice_id = intval($_REQUEST["InvId"]);
$signature = textFilter($_REQUEST["SignatureValue"], false, true);
$signature = strtoupper($signature);
$my_signature = strtoupper(md5("$sum:$invoice_id:$merchant_password_1"));
if ($my_signature == $signature)
{
$row = $db->super_query("SELECT `".PREFIX."_money`.`id`,
`".PREFIX."_money`.`signature`,
`".PREFIX."_money`.`user_id`
FROM `".PREFIX."_money`
WHERE `".PREFIX."_money`.`signature` = '".$signature."'
LIMIT 1");
if($row){
$sql = $db->query("UPDATE `".PREFIX."_users` SET `".PREFIX."_users`.`user_money` = `".PREFIX."_users`.`user_money`+".$sum." WHERE `user_id` = '".$row['user_id']."'");
if($sql){
$db->query("UPDATE `".PREFIX."_money` SET `".PREFIX."_money`.`result` = 'success' WHERE `".PREFIX."_money`.`invoice_id` = '".$invoice_id."'");
header("Location: /settings/money");
} else {
msgbox('Ошибка сервера','message','f-message__red','message');
}
} else {
msgbox('Ошибка, платеж не найден','message','f-message__red','message');
}
} else {
msgbox('Ошибка, неверный хэш','message','f-message__red','message');
}
break;
/* Payments fail || Отказ от проведения платежа */
case "fail":
$invoice_id = intval($_REQUEST["InvId"]);
$sql = $db->query("UPDATE `".PREFIX."_money` SET `".PREFIX."_money`.`result` = 'fail' WHERE `".PREFIX."_money`.`id` = '".$invoice_id."'");
if($sql){
msgbox('Вы отказались от оплаты','message','f-message__red','message');
} else {
msgbox('Ошибка сервера','message','f-message__red','message');
}
break;
/* Payments result || Оповещение о платеже */
case "result":
$sum = intval($_REQUEST["OutSum"]);
$invoice_id = intval($_REQUEST["InvId"]);
$signature = textFilter($_REQUEST["SignatureValue"], false, true);
$signature = strtoupper($signature);
$my_signature = strtoupper(md5("$sum:$invoice_id:$merchant_password_2"));
if ($my_signature == $signature)
{
$row = $db->super_query("SELECT `".PREFIX."_money`.`id`,
`".PREFIX."_money`.`signature`,
`".PREFIX."_money`.`user_id`
FROM `".PREFIX."_money`
WHERE `".PREFIX."_money`.`signature` = '".$signature."'
LIMIT 1");
if($row){
$sql = $db->query("UPDATE `".PREFIX."_money` SET `".PREFIX."_money`.`result` = 'result' WHERE `".PREFIX."_money`.`invoice_id` = '".$invoice_id."'");
if($sql){
header("Location: /settings/money");
} else {
msgbox('Ошибка сервера','message','f-message__red','message');
}
} else {
msgbox('Ошибка, платеж не найден','message','f-message__red','message');
}
} else {
msgbox('Ошибка, неверный хэш','message','f-message__red','message');
}
break;
/* Инциализация платежа */
case "initialization":
$invoice_id = InvoiceID(6);
$sum = intval($_GET['sum']);
$description = "Начисление форматов";
$user_email = $user_email;
$signature = md5("$merchant_login:$sum:$pay_id:$merchant_password");
$sql = $db->query("INSERT INTO `".PREFIX."_money` SET
`user_id` = '".$user_id."',
`invoice_id` = '".$invoice_id."',
`signature` = '".$signature."',
`date` = '".$server_time."',
`sum` = '".$sum."',
`result` = '0'");
if($sql){
$url = "https://auth.robokassa.ru/Merchant/Index.aspx?MrchLogin=$merchant_login&".
"OutSum=$sum&Email=$user_email&InvId=$pay_id&Desc=$description&SignatureValue=$signature";
header("Location: ".$url);
} else {
msgbox('Ошибка сервера','message','f-message__red','message');
}
break;
default: msgbox('Ошибка доступа','message','f-message__red','message');
}
?>
Табличка:
CODE (
SQL ):
скопировать код в буфер обмена
CREATE TABLE `fh_money` (
`id` int( 11) NOT NULL AUTO_INCREMENT ,
`user_id` int( 11) NOT NULL DEFAULT '0' ,
`invoice_id` int( 6) NOT NULL DEFAULT '0' ,
`signature` varchar( 255) NOT NULL DEFAULT '0' ,
`date` varchar( 255) NOT NULL DEFAULT '0' ,
`sum` float NOT NULL DEFAULT '0' ,
`result` enum( '0' , 'success' , 'fail' , 'result' ) NOT NULL DEFAULT '0' ,
PRIMARY KEY ( `id` ) ,
KEY `user_id` ( `user_id` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8 AUTO_INCREMENT = 1 ;
madlabel
Отправлено: 09 Августа, 2015 - 11:03:35 • Тема: Модальные окна • Форум: JavaScript & VBScript
Ответов: 3 Просмотров: 628
Сделал велосипед, вроде работает как я его прошу.
Можно вывести либо свой content в окно либо картинку.
Так вот, картинку он мне в окно выводит, но хотелось бы сделать кнопкт (prev, next) для переключения картинок между собой.
Стартуем:
Спойлер (Отобразить )
(function($) {
$.fn.extend({
formatModal: function(options) {
var defaults = {
top: 100,
content: null,
overlay: 0.8
};
var overlay = $("<div class='f-modalbox_overlay'></div>");
$("body").append(overlay);
options = $.extend(defaults, options);
return this.each(function() {
var o = options;
$(this).click(function(e) {
var href = $(this).attr("href");
var modalbox_id = $(this).attr("id");
var modalbox = $("<div class='f-modalbox' id='"+modalbox_id+"'></div>");
$("body").append(modalbox);
if(href == "#"){
$(modalbox).append(o.content);
} else {
$(modalbox).append('<img src="'+href+'" width="100%">');
}
var modalbox_width = $(modalbox).outerWidth();
$(modalbox).css({
"display": "block",
"position": "fixed",
"opacity": 0,
"filter:": "alpha(opacity=40)",
"-ms-filter:": "progid
XImageTransform.Microsoft.Alpha(Opacity=40)",
"filter": "progid
XImageTransform.Microsoft.Alpha(Opacity=40)",
"z-index": 101,
"left": 50 + "%",
"margin-left": -(modalbox_width / 2) + "px",
"top": o.top + "px"
});
$(overlay).css({
"display": "block",
opacity: 0
});
$(overlay).fadeTo("fast", o.overlay);
$(modalbox).fadeTo("fast", 1);
$(overlay).click(function() {
close_modal(modalbox)
});
e.preventDefault();
})
});
function close_modal(modalbox_id) {
$(overlay).fadeOut("fast");
$(modalbox_id).css({
"display": "none"
})
}
}
})
})(jQuery);
Каким макаром можно сделать переключатели для картинок? (Назад / Вперед)
В данном варианте выводится модальное окно и кладётся в него картинка, +закрыть окно можно кливнув на задний фон окна.
madlabel
Отправлено: 06 Августа, 2015 - 08:55:03 • Тема: Шифрование адреса для Jplayer • Форум: Вопросы новичков
Ответов: 10 Просмотров: 363
DeepVarvar пишет: Никаких. Адрес не скроешь. Иди узнай что означает аббревиатура URL.
Цитата: (УРЛ, от англ. Uniform Resource Locator ) — указатель размещения сайта в интернете. URL-адрес содержит доменное имя и указание пути к странице, включая название файла этой страницы.
Ознакомился, спасибо!
На многих cms форумов файлы отдаются скриптом: file?id=dsfade342sadsa
Вообще реально ли подобное реализовать? Скажем, чтобы файл можно было прослушать через плеер, а скачать - бибу (нельзя). Или можно забыть про идею?
madlabel
Отправлено: 06 Августа, 2015 - 08:12:31 • Тема: Шифрование адреса для Jplayer • Форум: Вопросы новичков
Ответов: 10 Просмотров: 363
Доброго времени суток!
Ситуация следующая. На сайте имеется плеер Jplayer.
Выводится след.образом (пример):
PHP:
скопировать код в буфер обмена
foreach ( ) {
< script type= "text/javascript" > $( document) . ready( function ( ) { player. view( '{$id}' , '/uploads/36/844eaefa6f7ff8fa1e44.mp3' ) ; } ) ;</ script>
< div id= "player-{$id} " ></ div>
}
Как можно зашифровать адрес к аудиофайлу? (/uploads/36/844eaefa6f7ff8fa1e44.mp3)
Изначально думал в PHP путь к файлу обернуть в base64_encode(), а при вызове плеера POST'ом отправлять срипту адрес к аудиофайлу, деодировать и отправлять обратно для подстановки в Jplayer.
Какие есть еще варианты?
madlabel
Отправлено: 30 Июля, 2015 - 10:52:27 • Тема: POST не могу перебрать • Форум: Вопросы новичков
Ответов: 2 Просмотров: 139
PHP:
скопировать код в буфер обмена
if ( isset ( $_POST [ 'entry' ] ) ) { $row_id = $_POST [ 'id' ] ;
$row_name = $_POST [ 'name' ] ;
$row_message = $_POST [ 'message' ] ;
$row_format = $_POST [ 'format' ] ;
$row_bpm = $_POST [ 'format' ] ;
$row_day = $_POST [ 'day' ] ;
$row_month = $_POST [ 'month' ] ;
$row_year = $_POST [ 'year' ] ;
$row_download = $_POST [ 'download' ] ;
$i = 0 ;
foreach ( $row_id AS $id ) {
/*
Update file
*/
$name = textFilter( $row_name [ $i ] , false , true ) ;
$message = textFilter( $row_message [ $i ] , false , true ) ;
$format = intval ( $row_format [ $i ] ) ; $month = intval ( $row_month [ $i ] ) ; $year = intval ( $row_year [ $i ] ) ; $download = intval ( $row_download [ $i ] ) ; $date = $day . "|" . $month . "|" . $year ;
$db -> query ( "UPDATE `" . PREFIX. "_attachments`
SET
`" . PREFIX. "_attachments`.`name` = '" . $name . "',
`" . PREFIX. "_attachments`.`message` = '" . $message . "',
`" . PREFIX. "_attachments`.`format` = '" . $format . "',
`" . PREFIX. "_attachments`.`bpm` = '" . $bpm . "',
`" . PREFIX. "_attachments`.`date` = '" . $date . "',
`" . PREFIX. "_attachments`.`download` = '" . $download . "'
WHERE `" . PREFIX. "_attachments`.`id` = '" . $id . "'" ) ;;
$i ++;
if ( $count == $i ) {
header ( 'location: /newtopic/' . $forum_id . '/' ) ; }
}
}
Этот велосипед же можно облегчить? Или с пивком потянет?
madlabel
Отправлено: 30 Июля, 2015 - 08:16:31 • Тема: POST не могу перебрать • Форум: Вопросы новичков
Ответов: 2 Просмотров: 139
CODE (
htmlphp ):
скопировать код в буфер обмена
Array
(
[id] => Array
(
[0] => 67
[1] => 66
[2] => 64
)
[name] => Array
(
[0] => UPROCKING BEATS (ANDREY SPIRIN MASHUP)]
[1] => Bruno Mars vs. Kolya Funk - Uptown Funk (DJ Alex Mashup)
[2] => David Guetta & Ms. Dynamite vs Dave Winnel - No Money, No Love (DJ Ramirez & Andres Slam Mashup)
)
[entry] => test
)
PHP:
скопировать код в буфер обмена
if ( isset ( $_POST [ 'entry' ] ) ) { $data = $_POST ;
foreach ( $data as $key => $value ) {
$id = ?
$name = ?
echo "UPDATE `table` SET `name` = '" . $name . "' WHERE id = " . $id . "<br>" ;
}
}
как вытащить ID и NAME для sql запроса?
Страниц (3): « 1 2 [3]
Powered by ExBB FM 1.0 RC1. InvisionExBB