清风徐来
知是行之始,行是知之成

jQuery获取表单项目以及AJAX应用

PHP jQueryAJAX 约 2 分钟

1.假如我们有如下页面

<input type="text" name="textname" id="text_id" value="">     
<!--其余的请自行添加.重要的是要有TYPE.NAME.ID等,一般情况这些都是有的--> 

2.下面来看怎么取得FORM中的各种值等等;

function get_form_value(){     
/*获得TEXT.AREATEXT的值*/     
     var textval = $("#text_id").attr("value");//或者     
     var textval = $("#text_id").val();     
/*获取单选按钮的值*/     
     var valradio = $("input[@type=radio][@checked]").val();     
/*获取复选框的值*/     
    var checkboxval = $("#checkbox_id").attr("value")     
/*获取下拉列表的值*/     
     var selectval = $('#select_id').val();     
}

3.另外对表单的其他处理:

//控制表单元素:     
//文本框,文本区域:     
$("#text_id").attr("value",'');//清空内容     
$("#text_id").attr("value",'test');//填充内容     
//多选框checkbox:     
$("#chk_id").attr("checked",'');//未选中的值     
$("#chk_id").attr("checked",true);//选中的值     
if($("#chk_id").attr('checked')==undefined) //判断是否已经选中     
//单选组radio:     
$("input[@type=radio]").attr("checked",'10');//设置value=10的单选按钮为当前选中项     
//下拉框select:     
$("#select_id").attr("value",'test');//设置value=test的项目为当前选中项     
$("<option value='test'>test</option><option value='test2'>test2</option>").appendTo("#select_id")//添加下拉框的option     
$("#select_id").empty()//清空下拉框 

4.jQuery的AJAX应用

Xhtml文件如下:

<div id="result" style="backgroundrange;border:1px solid red;width:300px;height:400px;"></div>   
<form id="formtest" action="" method="post">   
<p><span>输入姓名:</span><input type="text" name="username" id="input1" /></p>   
<p><span>输入年龄:</span><input type="text" name="age" id="input2" /></p>   
<p><span>输入性别:</span><input type="text" name="sex" id="input3" /></p>   
<p><span>输入工作:</span><input type="text" name="job" id="input4" /></p>   
</form>   
<button id="send_ajax">提交</button>   
<button id="test_post">POST提交</button>   
<button id="test_get">GET提交</button> 

接着引入jQuery

<script  type="text/javascript" src="../jquery.js"></script>

再接着构建AJAX,jQuery有个好处,不需要在XHTML中夹杂着JS代码来触发事件了,可以直接封装在JS文件中

<script type="text/javascript">    
//$.ajax()方式    
$(document).ready(function (){    
   $('#send_ajax').click(function (){ //直接把onclick事件写在了JS中,而不需要混在XHTML中了    
          var params=$('input').serialize(); //序列化表单的值,与prototype中的form.serialize()相同    
         $.ajax({    
               url 'ajax_test.php',  //后台处理程序    
               type:'post',    //数据发送方式    
             dataType:'json',  //接受数据格式    
               data:params,  //要传递的数据    
               success:update_page  //回传函数(这里是函数名)    
               });    
        });    
});    
function update_page (json) { //回传函数实体,参数为XMLhttpRequest.responseText    
       var str="姓名:"+json.username+"";    
       str+="年龄:"+json.age+"";    
       str+="性别:"+json.sex+"";    
       str+="工作:"+json.job;    
       $("#result").html(str);    
}    
//$.post()方式:    
$(function (){//$(document).ready(function (){ 的简写    
      $('#test_post').click(function (){    
                $.post('ajax_test.php',    
               {username('#input1').val(),age('#input2').val(),sex('#input3').val(),job('#input4').val()},    
                function (data){ //回传函数    
                var myjson='';    
               eval('myjson='+data+';');    
               $('#result').html("姓名:"+myjson.username+"   
工作:"+myjson['job']);    
               });    
       });    
});    
//$.get()方式:    
$(function (){    
         $('#test_get').click(function (){    
                     $.get('ajax_test.php',    
                     {username("#input1").val(),age("#input2").val(),sex("#input3").val(),job("#input4").val()},    
                     function  (data) {    
                           var myjson='';    
                           eval("myjson="+data+";");    
                           $("#result").html(myjson.job);    
                      });    
           });    
});    
</script>

后段的php处理代码如下:

<?php    
$arr = $_POST; //若以$.get()方式发送数据,则要改成$_GET.或者干脆_REQUEST    
$myjson=json_encode($arr);     
echo $myjson;    
?>