7 февраля 2020
Нет комментариев
.htacess:
Header set Access-Control-Allow-Origin *
или php:
header('Access-Control-Allow-Origin: *');
.htacess:
Header set Access-Control-Allow-Origin *
или php:
header('Access-Control-Allow-Origin: *');
в .htaccess
Header always append X-Frame-Options DENY
<input type="text" name="test" placeholder="Test" onkeyup="this.value=this.value.replace(/\s+/gi,'')"/>ini_set('session.gc_maxlifetime',120960); ini_set('session.cookie_lifetime',120960); ini_set('session.save_path',$_SERVER['DOCUMENT_ROOT'].'../sessions/');
https://habr.com/ru/post/28418/
Javascript:
$(document).ready(function(){ var select_brand=$('select[name=brand]'); var select_collection=$('select[name=collection]'); select_brand.on('change',function(){ $.ajax({ url:"/?ajax_action=get_collections&brand="+select_brand.val(), dataType:"json", success:function(data){ select_collection.find('option').not(':first').remove(); $.each(data,function(index,item){ select_collection.append('<option value="'+item.id+'">'+item.name+'</option>'); }); select_collection.trigger("chosen:updated"); } }); }); });
HTML:
<select name="brand" class="chosen"> <option value="0">Выбрать</option> <?if(count($brands)>0){?> <?foreach($brands as $item){?> <option value="<?=$item['id']?>"<?if($item['id']==$change_catalog["brand"]){?> selected="selected"<?}?>><?=$item['name']?></option> <?}?> <?}?> </select> <select name="collection" class="chosen"> <option value="0">Выбрать</option> <?if(count($collections)>0){?> <?foreach($collections as $item){?> <option value="<?=$item['id']?>"<?if($item['id']==$change_catalog["collection"]){?> selected="selected"<?}?>><?=$item['name']?></option> <?}?> <?}?> </select>
PHP:
if($_GET['ajax_action']=='get_collections'&&$_GET['brand']>0){ header("Content-Type: application/json"); $result=get_from_base('`id`,`name`','collections',"`parent`='".$_GET['brand']."'",'pos'); echo json_encode($result); exit(); } $brands=get_from_base('`id`,`name`','brands',"1",'`parent`,`pos`'); if($_GET["change_id"]){ $change_catalog=get_by_id($_GET["change_id"],'catalog'); if($change_catalog['brand']){ $collections=get_from_base('`id`,`name`','collections',"`parent`='".$change_catalog['brand']."'",'pos'); } }
Просмотр всех установленных сертификатов:
certbot certificates
Удаление:
certbot delete --cert-name site.ruКогда нужно совместить Chosen (https://harvesthq.github.io/chosen/) и Autocomplete Widget (https://api.jqueryui.com/autocomplete/), например, при очень большом списке.
$("select.chosen").chosen({width:"100%"}); $('.accessories .search-field input').each(function(i,el){ el=$(el); el.autocomplete({ minLength:3, delay:2000, source:function(request,response){ var select=el.closest('.accessories').find('select'); $.ajax({ url:"/?sc="+request.term, dataType:"json", success:function(data){ select.find('option').not(':selected').remove(); response($.map(data,function(item){ if(!(select.find('option[value='+item.id+']').length>0)){ select.append('<option value="'+item.id+'">'+item.name+' ['+item.part+']</option>'); } })); select.trigger("chosen:updated"); } }); }, }); });
Пример php для ajax:
if(isset($_GET['sc'])){ header("Content-Type: application/json"); $result=get_from_base('`id`,`part`,`name`','catalog',"`part` LIKE '%".$_GET['sc']."%'",'`parent`,`pos`'); echo json_encode($result); exit(); }
Сам select:
<div class="accessories"> <select name="accessories[]" multiple="multiple" class="chosen" data-placeholder="Выбрать позиции"> <?if(count($catalog_accessories)>0){?> <?foreach($catalog_accessories as $v){?> <option value="<?=$v['id']?>"<?if(in_array($v['id'],$change_catalog_accessories)){?> selected="selected"<?}?>><?=$v['name']?> [<?=$v['part']?>]</option> <?}?> <?}?> </select> </div>
Другие данные:
$change_catalog_accessories=array(); $change_catalog=get_by_id($_GET["uid"],'catalog'); if($change_catalog['accessories']!=''){ $change_catalog_accessories=explode(',',str_replace("'","",$change_catalog['accessories'])); $catalog_accessories=get_from_base('`id`,`name`,`part`','catalog',"`shown`=1 and `id`!='".$change_catalog['id']."' and `id` in (".$change_catalog['accessories'].")",'`parent`,`pos`'); }