jquery序列化和 php 反序列化的问题? 本帖最后由 prosoft 于 2010-03-02 11:57:55 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在php里处理方式和平时一样, 那个jquery序列化只是方便传送, 不会作出其它改变,你打印一下$_POST数组就是知道, 其实你也可以直接用$_POST['name']来获得表单值。 你想取哪個值就取哪個的名字,$_post["name1"];全部要就遍歷全部提交的數據不就行了。 关键是$_post["name ??????? "]; 不确定是几? 可能是1,也可能是3. 放在form中的单元,都会被提交到服务器的,各个后缀都存在,不用担心 声明 jquery序列表表格内容为字符串,用于 Ajax 请求。HTML 代码:<p id="results"><b>Results: </b> </p><form> <select name="single"> <option>Single</option> <option>Single2</option> </select> <select name="multiple" multiple="multiple"> <option selected="selected">Multiple</option> <option>Multiple2</option> <option selected="selected">Multiple3</option> </select><br/> <input type="checkbox" name="check" value="check1"/> check1 <input type="checkbox" name="check" value="check2" checked="checked"/> check2 <input type="radio" name="radio" value="radio1" checked="checked"/> radio1 <input type="radio" name="radio" value="radio2"/> radio2</form>jQuery 代码:$("#results").append( "<tt>" + $("form").serialize() + "</tt>" );徐立华 我的问题不在这里.我可能没有表达清楚:form里input是动态添加/删除的. 我在提问时忘了写删除按钮.添加的id有可能被删除,这就导致服务器不知道到底传过来了哪些值?<button>(动态)增加(一行)</button> <button>(动态)删除(一行)</button>//假设用户已经生成了三个输入,可能由于某种原因用户会删除id=name2的输入,导致传给服务器的值只有_post[name1]和[name2],而没有[name2],所以在写入数据库时会很麻烦的<form><input tpye="text" id=name1 name=name1 /><input tpye="text" id=age1 name=age1 /> <input tpye="text" id=name2 name=name2 /><input tpye="text" id=age2 name=age2 /><input tpye="text" id=name3 name=name3 /><input tpye="text" id=age3 name=age3 />......</form> 提交太急了,有写错的地方.//假设用户已经生成了三个输入,可能由于某种原因用户会删除id=name2的输入,导致传给服务器的值只有_post[name1]和[name3],而没有[name2],所以在写入数据库时会很麻烦的 <button>(动态)增加(一行)</button><form><input tpye="text" id=name1 name=name1 /><input tpye="text" id=age1 name=age1 /><span>删除</span> <input tpye="text" id=name2 name=name2 /><input tpye="text" id=age2 name=age2 /><span>删除</span> <input tpye="text" id=name3 name=name3 /><input tpye="text" id=age3 name=age3 /><span>删除</span> <input tpye="text" id=name4 name=name4 /><input tpye="text" id=age4 name=age4 /><span>删除</span><input tpye="text" id=name5 name=name5 /><input tpye="text" id=age5 name=age5 /><span>删除</span></form>现在用户删除了<input tpye="text" id=name3 name=name3 /><input tpye="text" id=age3 name=age3 /><input tpye="text" id=name5 name=name5 /><input tpye="text" id=age5 name=age5 />请问后台add.php该怎样处理???谢谢 $arr = $_POST;$data = array();foreach ($arr as $k => $v) { if (preg_match('/(?<=name)\d+/',$k,$m)) { $data[] = array($v,$arr['age'.$m[0]]); }}var_dump($data); 如果确定不了id名,就给他们一个一样的class,然后处理后再提交:<input tpye="text" id=name1 name=name1 class="inputclass" />$(".inputclass").each(function(){ //遍历所有class=inputclass的值} $(".inputclass").each(function(){ alert($(this).val());//遍历所有class=inputclass的值 }); 无论input里的name怎么变, 只要你提交了, 就存$_POST中, 可以用正则选择你想要的值, 解决思路如10楼差不多 jquery $("form").serialize() 是把表单form中的有效元素编码成标准的URL参数串你使用的是POST方式,所以在php中可用$_POST得到全部提交数据你的难点是如何知道提交过来的键名其实,如果你用字段名来设置表单对象名,这个问题就迎刃而解了$fields = join(',', array_key($_POST));$values = "," . join("','", $_POST) . "'";$sql = "insert into tbl_name ($fields) values ($values)"; 关于匹配可有可无的字符串 验证码效果 关于用 正则函数preg_match_all进行信息采集 PHP循环table的显示问题 各位高手 ,PHP有什么符号可以返回根目录的。。。 求助正则 怎么样把这些数据写入文件 救命,php连加载mysql模块问题 [?]高手看下这是什么错误? php的在线文本编辑器存不进数据库 在线等给分~PHP克癃问题! 求助:unlink()删除一个不存在的文件时,提示 Warning
全部要就遍歷全部提交的數據不就行了。
放在form中的单元,都会被提交到服务器的,各个后缀都存在,不用担心
<p id="results"><b>Results: </b> </p>
<form>
<select name="single">
<option>Single</option>
<option>Single2</option>
</select>
<select name="multiple" multiple="multiple">
<option selected="selected">Multiple</option>
<option>Multiple2</option>
<option selected="selected">Multiple3</option>
</select><br/>
<input type="checkbox" name="check" value="check1"/> check1
<input type="checkbox" name="check" value="check2" checked="checked"/> check2
<input type="radio" name="radio" value="radio1" checked="checked"/> radio1
<input type="radio" name="radio" value="radio2"/> radio2
</form>jQuery 代码:
$("#results").append( "<tt>" + $("form").serialize() + "</tt>" );徐立华
我可能没有表达清楚:form里input是动态添加/删除的. 我在提问时忘了写删除按钮.
添加的id有可能被删除,这就导致服务器不知道到底传过来了哪些值?<button>(动态)增加(一行)</button> <button>(动态)删除(一行)</button>
//假设用户已经生成了三个输入,可能由于某种原因用户会删除id=name2的输入,导致传给服务器的值只有_post[name1]和[name2],而没有[name2],所以在写入数据库时会很麻烦的
<form>
<input tpye="text" id=name1 name=name1 /><input tpye="text" id=age1 name=age1 />
<input tpye="text" id=name2 name=name2 /><input tpye="text" id=age2 name=age2 />
<input tpye="text" id=name3 name=name3 /><input tpye="text" id=age3 name=age3 />
......
</form>
<form>
<input tpye="text" id=name1 name=name1 /><input tpye="text" id=age1 name=age1 /><span>删除</span>
<input tpye="text" id=name2 name=name2 /><input tpye="text" id=age2 name=age2 /><span>删除</span>
<input tpye="text" id=name3 name=name3 /><input tpye="text" id=age3 name=age3 /><span>删除</span>
<input tpye="text" id=name4 name=name4 /><input tpye="text" id=age4 name=age4 /><span>删除</span>
<input tpye="text" id=name5 name=name5 /><input tpye="text" id=age5 name=age5 /><span>删除</span>
</form>现在用户删除了
<input tpye="text" id=name3 name=name3 /><input tpye="text" id=age3 name=age3 />
<input tpye="text" id=name5 name=name5 /><input tpye="text" id=age5 name=age5 />请问后台add.php该怎样处理???谢谢
$data = array();
foreach ($arr as $k => $v) {
if (preg_match('/(?<=name)\d+/',$k,$m)) {
$data[] = array($v,$arr['age'.$m[0]]);
}
}
var_dump($data);
<input tpye="text" id=name1 name=name1 class="inputclass" />$(".inputclass").each(function(){
//遍历所有class=inputclass的值
}
alert($(this).val());//遍历所有class=inputclass的值
});
是把表单form中的有效元素编码成标准的URL参数串
你使用的是POST方式,所以在php中可用$_POST得到全部提交数据你的难点是如何知道提交过来的键名
其实,如果你用字段名来设置表单对象名,这个问题就迎刃而解了$fields = join(',', array_key($_POST));
$values = "," . join("','", $_POST) . "'";
$sql = "insert into tbl_name ($fields) values ($values)";