Я много гугл, но не смог найти решение этой проблемы:
У меня есть div на моей главной странице, который загружает другую страницу с помощью функции JQuery '.load'. Это хорошо работает. На этой загруженной странице у меня есть опция поиска. Когда форма отправлена, я хочу, чтобы этот ajax div перезагружался, и отправленные данные отправлялись вместе, поэтому я могу использовать это в этом div.
Как я могу сделать такую конструкцию? Я слышал, что .load использует GET, и моя форма отправляет POST. Но использование функции .post после отправки не работает.
Кто угодно?
Code sofar:
На моей главной странице у меня есть только div, ничего важного
Загруженная страница:
<form id="formpie" name="zoek" action="" method="POST"> <input type="hidden" name="zoek" value="zoek" id="zoek"/> <input type="text" name="tags" size="31" id="tags"/> <select name="categorie" id="categorie"> <?php $imagelib = Imagelib::find_all();?> <option value="">alle</option> <?php foreach($imagelib as $imagelib_id): ?> <option value="<?php echo $imagelib_id->id;?>"><?php echo $imagelib_id->naam; ?></option> <?php endforeach;?> </select> <input type="submit" name="zoek" id="search" value="Zoek" /> </form>
в моем JS-файле у меня есть:
Загрузочная часть:
jQuery("#select_portal").bind('click', function () { $("#dialog-form").css("display", "block"); $("#dialog-form").css("top", "100px"); $("#dialog-form").css("left", "auto"); $("#dialog-form").css("right", "auto"); $("#dialog-form").css("backgroundColor", "white"); document.getElementById('dialog-form').style.visibility = 'visible'; $("#dialog-form").load("imglib.php"); }); }
После нажатия кнопки «Отправить»:
$('#formpie').submit(function (e) { e.preventDefault(); var tags = $("#tags").val(); var categorie = $("#categorie").val(); $.ajax({ type: "POST", url: "imglib.php", async: false, dataType: 'html', success: function () { $('#dialog-form').load("imglib.php", {tags : tags, categorie : categorie}); } }); });
Что-то вроде этого должно работать:
$('#formpie').on('submit', function(e) { e.preventDefault(); $.ajax({ type: 'POST', url: "imglib.php", async: false, data: $(this).serializeArray(), success: function(data) { $('#dialog-form').html(data); } }); });
Вы должны отправить данные с сообщением. Он не будет автоматически отправлять данные формы.