#php #ajax #jquery
#php #ajax #jquery
Вопрос:
что ж, сегодня я хочу узнать, как захватить значение кнопки нескольких типов ввода, сравнить с исходным значением и в последний раз отправить в php-скрипт! Как я могу это сделать с помощью Jquery?
<html>
<body>
<div id="leftDiv" class="container">
<form action="" method="get">
<fieldset>
<p>Something 0</p>
<lable>Yes</label>
<input type="radio" name="Group0" value="1" >
<lable>No</label>
<input type="radio" name="Group0" value="0" >
</fieldset>
<fieldset>
<p>Something 1</p>
<lable>Yes</label>
<input type="radio" name="Group1" value="1" >
<lable>No</label>
<input type="radio" name="Group1" value="0" >
</fieldset>
<fieldset>
<p>Something 2</p>
<lable>Yes</label>
<input type="radio" name="Group2" value="1" >
<lable>No</label>
<input type="radio" name="Group2" value="0" >
</fieldset>
<fieldset>
<input type="submit" name="update" class="button" value="Submit">
</fieldset>
</form>
</div>
</body>
</html>
вышеуказанные значения генерируются php-скриптом (могут быть 1 или 100)
Комментарии:
1. Можете ли вы быть более подробным или, по крайней мере, показать нам пример?
2. Вам нужно расширить свой вопрос более подробно, например, добавить HTML, который вы используете для переключателей, написать некоторый псевдокод для того, чего вы хотите достичь, объяснить, какой ввод ожидает ваш PHP-скрипт и т.д.
3. для входных данных нужны разные имена
4. Входные данные имеют тот же номер, потому что bellongs относится к той же группе.
Ответ №1:
на самом деле самый простой способ — установить правильные значения, выбранные в HTML, и привязать к ним событие .onChange. в противном случае создайте скрытое поле с исходным значением, и при обмене сравните их следующим образом
//a hidden input field with the original value
<input type='hidden' id='Group0' value='0'/>
// a set of radio fields that reference the original field we will be comparing with in their 'rel' attribute for easy jQuery selection
Off<input type='radio' name='Group0' rel='#Group0' class='compareOnChane' value=0/><br/>
On <input type='radio' name='Group0' rel='#Group0' class='compareOnChane' value=1/>
<script>
$(document).ready(function(){
$('.compareOnChange').live('change',function(){
if($($(this).attr('rel')).val()!=$(this).val(){
//the value currently is different than the original value, fire our action
}
});
});
</script>
Ответ №2:
Это довольно хороший учебник, который научит вас основам этого:
http://trevordavis.net/blog/ajax-forms-with-jquery
Вы можете получить значения переключателей в формате JSON следующим образом:
var radios = {};
$('input[type="radio"]').each(function() {
radios[$(this).attr('name')] = $(this).attr('value');
});
Комментарии:
1. хорошо, итак, radios — это массив, в котором будут храниться все данные, верно? допустим, у меня будет более одного div с переключателями, если a ссылается на этот конкретный div, как я могу это сделать? Итак, после сохранения всех значений, как я могу отправить их на php?
2. var radios действительно хранит все данные в виде JSON. На данный момент он получает данные для всех переключателей на странице. Чтобы сделать это только для отмеченных, вам нужно добавить селектор :checked, а чтобы сделать это только для некоторых (в div), вы должны сначала указать идентификатор div: $(‘#divID input[type=»radio»]:checked’). Чтобы отправить эти данные в php, вам нужно прочитать руководство, на которое я ссылался. Мне нет смысла повторять это здесь.
3. Я впервые прочитал и завершил это руководство за час. Это действительно хорошо, оно того стоит. Это обобщит для вас информацию лучше, чем во многих других местах.