Задать вопрос
@Caspanch

Как вывести фото с помощью JS+PHP+JQ+AJAX?

Ситуация такая : пользователь загружает фотографии,которые помещается в директорию images,есть кнопка delete(фотография удаляются с базы и сервера) и есть submit,по которому все подтверждается.
e6ebf269b1fa453cb2b42bc089dd191f.png

Файлы записываются на сервер и в базу данных(это работает),но картинка которую должен видеть пользователь после загрузки не появляется,потому что я меняю имя файла на уникальное(чтобы при загрузки одинаковых файлов на сервер они не совпадали с уже закаченными)
$uploaddir = 'images/'; 
$nam=time().$_FILES['uploadfile']['name'];
$file = $uploaddir .time(). basename($_FILES['uploadfile']['name']);


Прием файла js-ом
(часть после обработки файла)
onComplete: function(file, response)
	{
		status.text('');
		var bb=response.substr(0,7)
		var idd=response.replace('success',' ');
		var idb =idd.replace(/^\s*|\s*$/g,'');
		if(bb==="success")
		{
			$('<span id='+idd+'></span>').appendTo('#files').html('<img src="images/'+file+'" alt="" width="120" height="120" style="margin:5px;" /><br><a href="javascript:void(0)" onClick="deleteFile('+idd+');">Delete</a>').addClass('success');
		}
		else 
		{
			$('<span></span>').appendTo('#files').text(response).addClass('error');
		}
	}});

98d7e82d6e784c07a256d2b7df0c0f0e.png
Он получает старое имя файла в тэг.
Как я понимаю в файле,где проводятся манипуляциями с файлом нужно создавать массив json объектов и передавать его в тэги вывода картинки выше.
$json = json_encode(array('foto'=>'$nam','success'=>1));
echo $json;

Но когда я пытаюсь получить json массив в onComlete вылезает ошибка
21c0300511354a168118e20f8a0d1bbb.png

Что делать?
  • Вопрос задан
  • 3175 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Caspanch Автор вопроса
Как правильно отправить и принять json массив?
$response = json_encode(array('foto'=>"$nam",'success'=>"1"));
echo $responce;

<script language="javascript" type="text/javascript">
$(function()
{
	var btnUpload=$('#upload');
	var status=$('#status');
	new AjaxUpload(btnUpload, {
	action: 'upload-file.php',
	name: 'uploadfile',
	onSubmit: function(file, ext)
	{
	 if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
     // extension is not allowed 
	status.text('Only JPG, PNG or GIF files are allowed');
	return false;
	}status.text('Uploading...');
	},
	
	onComplete: function(file, response)
	{

		//On completion clear the status
		status.text('');
		//Add uploaded file to list
		var obj = JSON.parse('response'); ??????
		//var bb=response.substr(0,7)
		//var idd=response.replace('success',' ');
		//var idb =idd.replace(/^\s*|\s*$/g,'');

		if(obj.success == "1")
		{
			$('<span id='+idd+'></span>').appendTo('#files').html('<img src="images/'+obj.foto+'" alt="" width="120" height="120" style="margin:5px;" /><br><a href="javascript:void(0)" onClick="deleteFile('+idd+');">Delete</a>').addClass('success');
		}
		else 
		{
			$('<span></span>').appendTo('#files').text(obj).addClass('error');
		}
	}});
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hedint
@hedint
Senior front-end developer
Как много технологий нужно, чтобы просто вывести фотографию..)
По теме:
у вас точно jQuery подключен? ругается на функцию parseJSON, очевидно - пишет, такой функции не существует.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽