Как осуществить отправку данных методом post в JavaScript?

В общем, столкнулся с такой проблемой. У меня используется скрипт для подтверждения удаления фото
<script type="text/javascript">
 	function del_photo(photo_id) { 
 		if (confirm("Вы уверены, что хотите удалить это фото?")) { 
 			window.location = "album.php" + photo_id; 
 		} 
 	}  
 </script>

Возник следующий вопрос: как сделать, чтобы скрипт выводил сообщение на подтверждение удаление, отправлял user_id методом Post на страницу album.php и делал редирект на страницу album.php?

Может, есть что-то типа как в html <input type=hidden name=photo_id value='%s'>
  • Вопрос задан
  • 5234 просмотра
Решения вопроса 1
Romastr
@Romastr Автор вопроса
Нашел легкий способ: так я вызываю скрипт с подтверждением
<form action='album.php' method='POST' enctype = 'multipart/form-data'><input type=hidden name=photo_id value='%s'><input type = 'submit' value = 'Удалить' onclick='return confirmDelete();'/>

Это код самого скрипта на выполнение
<script type="text/javascript">
	function confirmDelete() {
    if (confirm("Вы подтверждаете удаление?")) {
        return true;
    } else {
        return false;
    }
}
</script>

а так я достаю его в обработчике
$photo_id = $_POST['photo_id'];
		$delete_query =" DELETE FROM album WHERE author_photo_id = '$user_id' AND id_photo = '$photo_id' "; 
		mysql_query($delete_query) or die (mysql_error());
		header("Location: album.php?succes_msg=фото удалено");
		exit();

В общем нечего сложного
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
metamorph
@metamorph
$.post(
    '/нужный_адрес',
    {
        'photo_id': photo_id
    }
)
.done(function(result) {
    window.location = ...;
})
.fail(function() {
    console.log('server error');
});
Ответ написан
Комментировать
morozovdenis
@morozovdenis
подключите jQuery к странице:
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
...
<head>

потом использовать так:
<script>
$.post( "test.php", { name: "John", time: "2pm" } , function(data) {
//выполнится после запроса и в data будет лежать то, что выведет скрипт test.php в output 
});
</script>

или так:
<script>
$.post( "test.php", 'key1=value1&key2=value2' , function(data) {
//выполнится после запроса и в data будет лежать то, что выведет скрипт test.php в output. в этом случае в php будет доступно $_POST['key1']
} );
</script>

больше примеров здесь: api.jquery.com/jQuery.post
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы