Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как реализовать загрузку нескольких картинок с фронтэнда Wordpress?

    nanny_ogg
    @nanny_ogg Автор вопроса
    My name is Masha. I'm from Russia
    Если кому-то понадобиться такое решение, проблема была в том, что у wp.media параметр multiple по умолчанию false, его надо установить в значение true. Как-то так
    $(document).on('click', '.upload_image_button_photo', function(event){
    		event.preventDefault();
    		var button = $(this);
    		var user_id = $(button).siblings('#user_id').val();
    
    	    var custom_uploader = wp.media({
    	        button: {
    	            text: 'Загрузить'
    	        },
    	        multiple: true
    	    })
    	    .on('select', function() {
    	        var attachments = custom_uploader.state().get('selection').toJSON();
    	        // console.log(attachments);
    	        attachments.forEach(function(curVal, index, array) {
    	        	// console.log(curVal);
    	        	handlerRequestPhoto('upload_photos', 'add', user_id, curVal.url );
    	        	setTimeout(function(){
    					$('.photos-block').append('<div class="col-sm-3 item"><div class="single-photo"><a class="fancybox" rel="gallery" href="' + curVal.url + '"><img src="' + curVal.url + '"></a></div></div>');
    				}, 300);
    	        });
    	    })
    	    .open();
    	});
    Ответ написан
    Комментировать
  • Как получить значение data в success?

    nanny_ogg
    @nanny_ogg Автор вопроса
    My name is Masha. I'm from Russia
    В общем, если у кого-то возникнет такая же проблема, моя была - в некорректной обработке вордпрессом не своего запроса ajax. Если использовать встроенный ajax, то в data все возвращается в нормальном виде
    $.ajax({ cache: false,
    		    url: window.wp_data.ajax_url,
    		    type: 'POST',
    			dataType: 'json',
    			data: {
    			    'action':'users_vote',
    			    'user_id': user_id, 
    			    'post_id': post_id,
    			    'type_vote': type_vote
    			}
    		}).done(function (data) {
    		    if(data.result == 'success'){
    		        var count = parseInt(element.find('b').html());
    		        element.find('b').html(count+1);
    		    } else {
    		        alert('Вы уже проголосовали');
    		    }
    		}).fail(function (jqXHR, textStatus) {
    		    
    		});

    add_action('wp_ajax_users_vote', 'users_vote');
    add_action('wp_ajax_nopriv_users_vote', 'users_vote');
    
    
    function users_vote(){
    	$section_wall_data = new sectionWall();
    	return $section_wall_data->setVotedUsers($_POST['post_id'], $_POST['user_id'], $_POST['type_vote']);
    	wp_die();
    }
    Ответ написан
    Комментировать