我刚刚发现了jquery-mobile,但我觉得这些文档并没有真正适应“初学者”。
所以,我有一个带有一些radiobutton的字段集。当用户“检查”一个按钮时,怎么做用ajax调用在php会话中保存值?
<fieldset data-role="controlgroup">
<legend>Choose a pet:</legend>
<input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" />
<label for="radio-choice-1">Cat</label>
<input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2" />
<label for="radio-choice-2">Dog</label>
<input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3" />
<label for="radio-choice-3">Hamster</label>
<input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4" />
<label for="radio-choice-4">Lizard</label>
</fieldset>
答案 0 :(得分:1)
让我们用jQuery示例开始更简单,你对jQuery有多熟悉?
您需要将处理程序绑定到单选按钮上的change事件,然后向您设置会话变量的PHP发出AJAX调用。
要绑定处理程序,请参阅on
或live
函数的jQuery文档,类似于$(document).ready...
$('input[name="radio-choice-1"]').live('change', function(){
var value = $(this).val();
$.ajax({
//see jQuery ajax functions
});
});
但是在jQuery Mobile上:
你应该使用jQM(jQuery Mobile)的pageinit事件运行这个代码而不是document.ready,如果你使用多个单页模板和ajax转换更是如此 - 在这种情况下你应该也使用on
函数代替live,以便只收听当前页面的冒泡事件。
然后它将类似于
$('#yourPage').on('change', 'input[name="radio-choice-1"]', function(){
答案 1 :(得分:1)
你需要绑定一个更改处理程序并触发ajax调用,如下所示
$('input[name="radio-choice-1"]').live('change', function(){
var selectedValue = $(this).val();
$.post("save.php", {optionSelected: selectedValue});
});
其中save.php内容为
<?php
session_start();
$_SESSION['radio-choice-1-option'] = $_POST['optionSelected'];
?>