#javascript #php #jquery #html #ajax
#javascript #php #jquery #HTML #ajax
Вопрос:
Формы имеют action
атрибут, указывающий, куда (например .php
, файл) отправлять. Есть ли <input>
у элементов action
атрибут?
- Ответ, скорее всего, нет. Но я хотел бы знать, в какой концепции я здесь ошибаюсь?
- Есть ли эквивалент
action
for<input>
? - Причина, по которой я спрашиваю об этом, заключается в том, что у меня есть несколько флажков, и я хочу использовать AJAX для запуска чего-либо в PHP-файл, так что a
div
изменяется при установке флажков (я не хочу перезагружать всю страницу).). Как мне это сделать?
Я все еще разрабатываю код на этом этапе, но пример можно увидеть здесь .
Ценю ваши предложения!
Комментарии:
1.
action
Для входных данных нет атрибута. Однако вы можете вызвать AJAX поclick/checked
событию. Пожалуйста, поделитесь своим кодом и четко объясните, чего вы хотите здесь достичь.2. использовать
.load()
при изменении флажка
Ответ №1:
Судя по комментариям, это действительно звучит так, как будто вы хотите, чтобы что-то отправлялось, когда может быть изменено любое количество флажков.
Добавьте обработчик событий ко всем из них, сериализуйте () форму и публикуйте ее всякий раз, когда какой-либо из них изменяется
var $form =$('#myForm');
$form.find(':checkbox').change(function(){
var formData = $form.serialize();
$.post('/someFile.php', formData, function(response){
// do something with response
}).fail(function(){
alert("Oops something bad happened');
});
});
Комментарии:
1. @charlietfI выглядит действительно многообещающе! Только один вопрос, скажем, я отправляю в someFile.php , делает ли это перезагрузку php-страницы, на которой вы находитесь? Или перезагружается только один сектор страницы?
2. это полностью зависит от вас. Там, где я отметил, сделайте что-нибудь с ответом, этот ответ может быть html или это могут быть данные для обновления чего-либо на странице. Много применений для ajax
3. И когда возвращается html, большую часть времени это не полная страница… просто части
Ответ №2:
Используйте методы jQuery AJAX:
AJAX — это искусство обмена данными с сервером и обновления частей веб-страницы — без перезагрузки всей страницы.
ПРИМЕР:
$(document).ready(function(){
$("button").click(function(){
// You can call ajax on any event of html element like checkbox checked, dropdown changed
$.ajax({url: "demo_test.txt", success: function(result){
$("#div1").html(result);
}});
});
});
Ответ №3:
$(document).on('change', '#checkboxid', function() {
if ($(this).is(':checked')) {
$('#container').load('pages/somephpfile.php');
}
});
Использовать .load()
при смене флажка
- вы не можете установить, какой php-файл загружать, основываясь на статусе флажка.
Также попробуйте
$(document).on('change', '#checkboxid', function() {
$.ajax({
type: 'POST',
url: 'somephp.php',
dataType: "html",
success: function(data) {
$('#container').html(data) //load the data from somephp.php here
}
});
});
Комментарии:
1. не имеет смысла делать один и тот же запрос без данных для обоих состояний флажка
2. @charlietfl это то, что ты имеешь в виду?
3. все еще думаю, что это слабый пример, который не показывает использование
this
или возможность отправки на сервер чего-либо конкретного, связанного с этим флажком4. @charlietfl мне жаль, что я не получил эту часть с сервером? я только прочитал
such that the a div changes when the checkboxes are ticked
5. @iWillGetBetter да… существует метод jQuery
serialize()
, который выполняет целую форму, и вы бы использовали$.ajax
его как другой ответ или$.post()
или в зависимости от того, что вам нужно в ответе, возможно, может быть load(), как этот ответ