代码其实很简单,$.ajax提交一个数据,但关键是有一个参数值为html字符串,该字符串为从页面上抓取过来,然后目的是保存到数据库
,现在已经确定了是跟参数数据格式有关系,但是始终未找到数据到底哪儿有问题,麻烦大家看看。
先上js代码:
var action = "SpecialSave";
var n = "aa";
var s = "001001,001002,001003,001004,001006,001005,001007,001013,001008,001014";
var e = "aa";
var d = "aa";
var t = "稍后补上该变量值";
$.ajax({
url: "NewSpecial.ashx",
sync: true,
data: "n=" + n + "&action=" + action + "&s=" + s + "&e=" + e + "&d=" + d + "&t=" + t,
dataType: "json",
type: "POST",
success: function (data) {
},
error: function (data) {
}
});
问题的关键就在于t值,怎么都传不过去,麻烦大家看一下。
<div id=\"Middle_GJ\" class=\"z_middle\"> <table class=\"z_TB\" cellspacing=\"0\" cellpadding=\"0\"> <tbody id=\"tbody1\"><tr><td style=\"width: 50px\"><img alt=\"增加条件\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z-add.gif\" onclick=\"return ADV.AppendCondition();\"> <img alt=\"减少条件\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z-minus.gif\" onclick=\"return ADV.SubCondition();\"></td><td style=\"width: 160px\"><select id=\"selField1\" name=\"selField\" style=\"width: 150px\" onchange=\"ADV.b(1)\"><option selected=\"selected\" value=\"ALL\">全部</option><option value=\"TITLE\">标题</option><option value=\"AUTHOR\">作者</option><option value=\"ORG_ANYNAME\">单位</option><option value=\"KEYWORD\">关键词</option></select></td><td style=\"width: 90px\"><select id=\"selSearchType1\" class=\"opt1\" style=\"width: 80px\"><option selected=\"selected\" value=\"0\">精确</option><option value=\"1\">模糊</option></select></td><td style=\"width: 310px\"><input id=\"txtSearchWord1\" name=\"txtSearchWord1\" onclick=\"ADV.a(1)\" style=\"width: 300px\"></td><td><select id=\"selOper1\" style=\"width:70px\"><option selected=\"selected\" value=\"AND\">与</option><option value=\"OR\">或</option><option value=\"NOT\">非</option></select></td></tr><tr><td style=\"width: 50px\"><img alt=\"增加条件\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z-add.gif\" onclick=\"return ADV.AppendCondition();\"> <img alt=\"减少条件\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z-minus.gif\" onclick=\"return ADV.SubCondition();\"></td><td style=\"width: 160px\"><select id=\"selField2\" name=\"selField\" style=\"width: 150px\" onchange=\"ADV.b(2)\"><option selected=\"selected\" value=\"ALL\">全部</option><option value=\"TITLE\">标题</option><option value=\"AUTHOR\">作者</option><option value=\"ORG_ANYNAME\">单位</option><option value=\"KEYWORD\">关键词</option></select></td><td style=\"width: 90px\"><select id=\"selSearchType2\" class=\"opt1\" style=\"width: 80px\"><option selected=\"selected\" value=\"0\">精确</option><option value=\"1\">模糊</option></select></td><td style=\"width: 310px\"><input id=\"txtSearchWord2\" name=\"txtSearchWord2\" onclick=\"ADV.a(2)\" style=\"width: 300px\"></td><td><select id=\"selOper2\" style=\"width:70px\"><option selected=\"selected\" value=\"AND\">与</option><option value=\"OR\">或</option><option value=\"NOT\">非</option></select></td></tr><tr><td style=\"width: 50px\"><img alt=\"增加条件\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z-add.gif\" onclick=\"return ADV.AppendCondition();\"> <img alt=\"减少条件\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z-minus.gif\" onclick=\"return ADV.SubCondition();\"></td><td style=\"width: 160px\"><select id=\"selField3\" name=\"selField\" style=\"width: 150px\" onchange=\"ADV.b(3)\"><option selected=\"selected\" value=\"ALL\">全部</option><option value=\"TITLE\">标题</option><option value=\"AUTHOR\">作者</option><option value=\"ORG_ANYNAME\">单位</option><option value=\"KEYWORD\">关键词</option></select></td><td style=\"width: 90px\"><select id=\"selSearchType3\" class=\"opt1\" style=\"width: 80px\"><option selected=\"selected\" value=\"0\">精确</option><option value=\"1\">模糊</option></select></td><td style=\"width: 310px\"><input id=\"txtSearchWord3\" name=\"txtSearchWord3\" onclick=\"ADV.a(3)\" style=\"width: 300px\"></td><td><select id=\"selOper3\" style=\"width:70px\"><option selected=\"selected\" value=\"AND\">与</option><option value=\"OR\">或</option><option value=\"NOT\">非</option></select></td></tr> <tr> <td></td> <td class=\"td1\" colspan=\"2\"> <input type=\"checkbox\" id=\"cbxIsChoiceYear\" name=\"cbxIsChoiceYear\"> <select id=\"selYearStart\" style=\"width: 90px\"><option selected=\"selected\" value=\"0\">请选择</option><option value=\"2016\">2016年</option><option value=\"2015\">2015年</option><option value=\"2014\">2014年</option><option value=\"2013\">2013年</option><option value=\"2012\">2012年</option><option value=\"2011\">2011年</option><option value=\"2010\">2010年</option><option value=\"2009\">2009年</option><option value=\"2008\">2008年</option><option value=\"2007\">2007年</option></select>~ <select id=\"selYearEnd\" style=\"width: 90px\"><option selected=\"selected\" value=\"0\">请选择</option><option value=\"2016\">2016年</option><option value=\"2015\">2015年</option><option value=\"2014\">2014年</option><option value=\"2013\">2013年</option><option value=\"2012\">2012年</option><option value=\"2011\">2011年</option><option value=\"2010\">2010年</option><option value=\"2009\">2009年</option><option value=\"2008\">2008年</option><option value=\"2007\">2007年</option></select> </td> <td> <img alt=\"\" onclick=\"return ADV.DoAdvancedSearch();\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z_button_search2.gif\"> </td> </tr> </tbody> </table> </div> <div id=\"Middle_ZY\" class=\"z_middle\" style=\"display: none;\"> <table class=\"z_TB\" cellspacing=\"0\" cellpadding=\"0\"> <tbody> <tr> <td style=\"width: 50px\"> </td> <td colspan=\"2\"> <textarea id=\"txtArea\" style=\"width: 480px; height: 100px\" name=\"TextArea1\"></textarea> </td> <td> <a href=\"javascript:void(0);\" onclick=\"javascript:$('#draggable').show();$('#draggable').draggable()\">可检索字段</a> <br> <br> <a href=\"../专业检索规则.aspx\" target=\"_blank\">专业检索规则</a> </td> </tr> <tr> <td></td> <td style=\"width: 250px\" class=\"td1\"> <input id=\"cbxIsChoiceYear2\" type=\"checkbox\" name=\"Checkbox1\"> <select id=\"selYearStart2\" style=\"width: 90px\"><option selected=\"selected\" value=\"0\">请选择</option><option value=\"2016\">2016年</option><option value=\"2015\">2015年</option><option value=\"2014\">2014年</option><option value=\"2013\">2013年</option><option value=\"2012\">2012年</option><option value=\"2011\">2011年</option><option value=\"2010\">2010年</option><option value=\"2009\">2009年</option><option value=\"2008\">2008年</option><option value=\"2007\">2007年</option></select>~ <select id=\"selYearEnd2\" style=\"width: 90px\"><option selected=\"selected\" value=\"0\">请选择</option><option value=\"2016\">2016年</option><option value=\"2015\">2015年</option><option value=\"2014\">2014年</option><option value=\"2013\">2013年</option><option value=\"2012\">2012年</option><option value=\"2011\">2011年</option><option value=\"2010\">2010年</option><option value=\"2009\">2009年</option><option value=\"2008\">2008年</option><option value=\"2007\">2007年</option></select> </td> <td style=\"width: 250px\"> <img alt=\"\" onclick=\"return ADV.DoProSearch();\" src=\"../Portals/_default/Skins/ScholarCompress/images/Z_button_search2.gif\"> </td> </tr> </tbody> </table> </div>
上面的就是t值,但是不知道哪里有问题。经过我测试,替换掉所有的/和=,然后再encodeURIComponent编码一下就可以传过去,但是这不是正路子。
关键是为什么上面的html不能直接传过去?
我也是帮别人问这个问题,不要提供其他思路,我只想知道为什么这个不行,错在哪里?
首先你要确定是不是使用 post 请求,
如果是 post 请求,你的格式错了
json 格式
{ n:"", action:"" }
建议去看看 json 格式的写法,和 get 请求传递参数的格式
参数传的不是json对象
encodeURIComponent编码,要不包含特殊字符如&会被截断,中文会乱码
要么data配置为json对象,jquery自动帮你encodeURIComponent编码
+ "&t=" +encodeURIComponent( t),