<script type="text/javascript">
function ajaxSubmit(form){
$.ajax({
url: "submit.php",
type: "post",
data: {param1:form.param1.value,
param2:form.param2.value,
param3:form.param3.value,
param4:form.param4.value
},
dataType: "json",
contentType: "application/json;charset=utf-8",
success:function(data){
//测试参数值
alert(data);
},
error:function(e){
alert('ajax hava an error');
},
complete:function(e){
}
});
}
</script>
<form name="myform" onsubmit="ajaxSubmit(this)">
<input type="hidden" name="param1" value="" />
<input type="hidden" name="param2" value="" />
<input type="hidden" name="param3" value="" />
<textarea name="param4" rows="" cols="" class="textarea"></textarea>
<input type="submit" name="submit" value="发布" />
</form>
<!--
表单的默认值
//param1 --- 类似"string_2342_3200"格式的一个字符串
//param2 --- 这里是32位的英文和字母组合的字符串
//param3 --- 有一串中文字(类似留言的标题),长度不超过50个汉字
//param4 --- 一大串中文字(类似留言的内容),长度不超过500个汉字
-->$param1 = $_POST["param1"];
$param2 = $_POST["param2"];
$param3 = $_POST["param3"];
$param4 = $_POST["param4"];
$array = array($param1,$param2,$param3,$param4);
echo json_encode($array)
为什么我通过PHP获取不到任何值呢?而且有时候不错误提示的时候获取的是空值,错误提示的时候比较多,怎么会有时错误有时不错误提示呢?是因为dataType的问题吗?
另外我想问一下jquery的ajax的data参数每个参数值的长度是否有限制?get方式我知道有限制,post的有限制吗?限制的长度是多少?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js"></script>
</head>
<div> <script type="text/javascript">
function ajaxSubmit(){
$.ajax({
url: "index.php",
type: 'POST',
data: {
param1:$("#param1").val(),
param2:$("#param2").val(),
param3:$("#param3").val(),
param4:$("#param4").val()
},
success:function(data){
//测试参数值
alert(data);
},
error:function(e){
alert('ajax hava an error');
},
complete:function(e){
}
});
}
</script>
<form name="myform" >
<input type="hidden" name="param1" id="param1" value="1" />
<input type="hidden" name="param2" id="param2" value="2" />
<input type="hidden" name="param3" id="param3" value="3" />
<textarea name="param4" rows="" cols="" class="textarea" id="param4"></textarea>
<input type="button" name="submit" value="发布" onclick="ajaxSubmit();return false;"/>
</form>
</div>
</body>
</html>呵呵,弱弱的改了一下
差别是我这边不能通过id来获取,只能通过form来获取表单项的值。
而且目前来说,在前台的js里,我的那些个值都可以取得到。问题是出现在通过jquery.ajax传递到php的时候php获取不到。
2.<form name="myform" onsubmit="ajaxSubmit(this)"> 改为<form name="myform" onsubmit="ajaxSubmit(this);return false;">否则会跳转 例子的话应该是刷新
2,这个没关系的,因为我其实return false也写在ajaxSubmit函数里了,跳转这个是没问题的。