2012-02-16 52 views
0

我只是发现jquery-mobile,但我发现文档不适合“初学者”。如何使用事件?

所以,我有一些单选按钮的fieldset。当用户“检查”一个按钮时,如何做到将值保存在带有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> 

回答

1

让我们从一个jQuery例子开始简单一点,您对jQuery的熟悉程度如何?

您需要将处理程序绑定到单选按钮上的更改事件,然后在您设置会话变量的地方向AJAX调用PHP。

要绑定一个处理器在$(document).ready...

$('input[name="radio-choice-1"]').live('change', function(){ 
    var value = $(this).val(); 

    $.ajax({ 
     //see jQuery ajax functions 
    }); 
}); 



但在jQuery Mobile的看到jQuery的文档的onlive功能,像这样:

你应该使用jQM(jQuery Mobile)的pageinit事件运行此代码而不是document.ready,如果您使用多个单页面模板并且ajax转换更多所以 - 在这种情况下,您还应该使用on函数而不是直播,以便仅侦听当前页面的冒泡事件。

那么这将是类似于

$('#yourPage').on('change', 'input[name="radio-choice-1"]', function(){

+0

非常感谢,我采取这种方式 – bahamut100 2012-02-16 17:06:23

+0

您对jQuery Mob的意见ile帮助,而且真是一招。谢谢。 – Sameer 2013-09-01 19:26:20

1

ü需要绑定一个变化处理程序,并如下

$('input[name="radio-choice-1"]').live('change', function(){ 
var selectedValue = $(this).val(); 

$.post("save.php", {optionSelected: selectedValue}); 
}); 

其中save.php内容会触发一个Ajax调用

<?php 
session_start(); 
$_SESSION['radio-choice-1-option'] = $_POST['optionSelected']; 
?> 
+0

好吧,它实际上类似于jQuery – bahamut100 2012-02-16 17:05:32