getJson('/form/action/url', $('#formId').serialize());
function getJson(actionUrl, rgData){
$.ajax({
url: actionUrl,
type: 'POST',
dataType: "json",
timeout: 60000,
data: rgData,
beforeSend: function(){
$('body').append('<div class="loader"><div class="animation"></div><div class="bg"></div></div>');
setTimeout('', 5000);
},
success: function(data){
if(typeof(data.callback) != 'undefined') {
var callback = data.callback; delete data.callback;
}
else
var callback = [];
$.each(data, function( elementId, item ){
var selector = '#' + elementId;
switch( item[1] == undefined ? 'rewrite' : item[1] ){
case 'rewrite':
$( selector ).html( item[0] );
break;
case 'before':
$( selector ).prepend( item[0] );
break;
case 'after':
$( selector ).append( item[0] );
break;
}
});
$.each(callback, function(key, item){ eval(item); });
},
complete: function (){
$('.loader').remove();
},
error: function (data){
if(data.responseText){
var rgData = JSON.parse(data.responseText);
$('#ui-dialog-title-dialog-modal').text(rgData.error.type);
$('.message_error').text(rgData.error.message);
$('.file_error').html('<b>' + rgData.error.file + '</b> in line ' + rgData.error.line);
$('#dialog-modal').dialog('open');
}
}
});
return false;
}
echo json_encode([
['idContainerHtml'] => ['возвращаемый контент', 'rewrite'],
['callback'] => [
'alert("Форма отправлена")',
'location.href="/redirect/url"'
]
]);
в отличие от php в java всё разложено "по полочкам" - классы лежат в пакетах
есть операторы импорта, указывающие, откуда берётся тот или иной класс
<slelect name="gocity">
<option value="1">Кокшетау</option>
<option value="2">Караганды</option>
</select>
upload.on('change', function(){
var data = new FormData();
data.append('file', uploadButton[0].files[0]);
$.ajax({
url: '/url/upload.php',
type: 'POST',
data: data,
processData: false,
contentType: false,
dataType: 'json',
success: function(result) {
},
error: function (result) {
}
});
});
Имеется желание потратить деньги и время
беру CMS Joomla
прикрутив соответствующий пока бесплатный шаблон
<a class="href" href="#">
<div class="logo"></div>
<div class="block">
<h2>Febox - создание сайтов</h2>
<p>Веб-студия дизайна</p>
</div>
<div class="link" onclik="location.href='/path/to/res'">
<i class="fa fa-chevron-right"></i>
</div>
</a>
function get_http_response_code($url) {
$headers = get_headers($url);
sleep(2);
return substr($headers[0], 9, 3);
}
function file_get_html($url, $use_include_path = false, $context = null, $offset = -1, $maxLen = -1, $lowercase = true, $forceTagsClosed = true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN = true, $defaultBRText = DEFAULT_BR_TEXT, $defaultSpanText = DEFAULT_SPAN_TEXT) {
// We DO force the tags to be terminated.
$dom = new SimpleHtmlDom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText);
// For sourceforge users: uncomment the next line and comment the retreive_url_contents line 2 lines down if it is not already done.
$errorsCode = ['404', '301', '302', '502'];
$responce = get_http_response_code($url);
if (!in_array($responce, $errorsCode)) {
$contents = file_get_contents($url, $use_include_path, $context, $offset);
} else {
return false;
}
// Paperg - use our own mechanism for getting the contents as we want to control the timeout.
//$contents = retrieve_url_contents($url);
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE) {
return false;
}
// The second parameter can force the selectors to all be lowercase.
$dom->load($contents, $lowercase, $stripRN);
return $dom;
}
require_once ('simple_html_dom.php');
$html=file_get_html('http://ya.ru');
echo $html
$url = 'http://site.ru/folder/arch.zip';
//тут определяем расширение файла
//и помещяем его в переменную скажем $ext
//тут же можно задать уникальное имя для сохроняемого файла
//что бы не перезаписались файлы у вас на сервере переменная будет $filename
$tmp = file_get_contents($url);
file_put_contents('/path/to/folder/'.$filename.'.'.$ext, $tmp);
$imgUrl = 'http://www.site.ru/img/path/img.jpg';
$i = file_get_contents($imgUrl);
if(strpos($imgUrl, '.jpg')) $ext = '.jpg';
elseif(strpos($imgUrl, '.png')) $ext = '.png';
elseif(strpos($imgUrl, '.jpeg')) $ext = '.png';
elseif(strpos($imgUrl, '.gif')) $ext = '.gif';
$filename = md5(rand(10000, 99999999)) . $ext;
file_put_contents(CRON_DIR . 'parse_data/img/' . $filename, $i);
$rgImages = upload_images('parse_data/img/' . $filename, $ext)
unlink(CRON_DIR . 'parse_data/img/' . $filename);
function upload_images($img, $ext){
$folder = '/UPLOAD/'.date('Y/m/d') . '/';
if(!is_dir(ROOT_DIR.$folder)){
mkdir(ROOT_DIR.$folder, 0777, true);
}
$rgFiles = array();
$orig = $folder.md5(time().mt_rand(0,999999)).$ext;
$img = file_get_contents(CRON_DIR.$img);
file_put_contents(ROOT_DIR.$orig, $img);
chmod(ROOT_DIR.$orig, 0777);
$rgFiles['sys_thumb'] = make_resize_image(ROOT_DIR.$orig, $ext, 75, 75);
$rgFiles['preview'] = make_resize_image(ROOT_DIR.$orig, $ext, 800, 600);
$rgFiles['thumb'] = make_resize_image(ROOT_DIR.$orig, $ext, 200, 200, 0);
$rgFiles['thumb2'] = make_resize_image(ROOT_DIR.$orig, $ext, 364, 364);
$rgFiles['original'] = $orig;
return serialize($rgFiles);
}
function make_resize_image($orig_filename, $ext, $w1, $h1, $crop = 1){
$dir = '/UPLOAD/'.date('Y/m/d') . '/';
if(!is_dir(ROOT_DIR.$dir)){
mkdir(ROOT_DIR.$dir, 0777, true);
}
do {
$filename = md5(time().mt_rand(0,999999)).$ext;
} while (file_exists(ROOT_DIR.$dir.$filename));
$file = $dir.$filename;
list($w0,$h0)=getimagesize($orig_filename);
if($w1!=0 && $h1!=0 && !$crop){
$p0=$w0/$h0;
$p1=$w1/$h1;
if($p0>$p1)$h1=0;
else $w1=0;
}
if(class_exists('Imagick')){
$thumb = new Imagick();
$thumb->readImage($orig_filename);
if($crop) $thumb->cropThumbnailImage($w1, $h1);
else $thumb->thumbnailImage($w1, $h1);
$thumb->writeImage(ROOT_DIR.$file);
$thumb->destroy();
}
chmod(ROOT_DIR.$file, 0777);
return $file;
}
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L]
header('HTTP/1.x 404 Not Found');
exit;
$rgFilters = $_POST['filters'];
$rgSql = [];
foreach($rgFilters as $k=>$v){
switch($k){
case 'type':
$rgSql[] = 'type_id = ' . $v;
break;
case 'country':
$rgSql[] = 'country_id = ' . $v;
break;
case 'price_from':
$rgSql[] = 'price > ' . $v;
break;
case 'price_to':
$rgSql[] = 'price > ' . $v;
break;
case 'manufacturer':
$rgSql[] = 'manufacturer_id = ' .$v;
break;
}
}
/**
* Для учета всех параметров
*/
$query = 'SELECT * FROM `products` ' . implode(' AND ', $rgSql);
/**
* Для получение товаров с совпадением хотябы одного параметра
* Конечно бредовая ситуация, ну а вдруг
*/
$query = 'SELECT * FROM `products` ' . implode(' OR ', $rgSql);