Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 不能使用SPServices UpdateListItems写入两个以上的字段_Jquery_Sharepoint - Fatal编程技术网

Jquery 不能使用SPServices UpdateListItems写入两个以上的字段

Jquery 不能使用SPServices UpdateListItems写入两个以上的字段,jquery,sharepoint,Jquery,Sharepoint,我正在以编程方式在SharePoint(MOSS)列表中创建列表项。我已经成功地使用了几种不同的技术,只要我将字段数限制为两个。实际上,我需要提供76个字段值。我正在尝试SPServices UpdateListItems方法。jQuery(1.7.1)和SPSServices(0.7.0)的最新版本 我的第一个方法是使用valuepairs选项。我有两个阵列可以用来为它提供数据。在两个价值观上都很好。然后我尝试静态填充变量并使用它们。同样的结果。切换到CAML批处理方法。同样的结果 完整功能状

我正在以编程方式在SharePoint(MOSS)列表中创建列表项。我已经成功地使用了几种不同的技术,只要我将字段数限制为两个。实际上,我需要提供76个字段值。我正在尝试SPServices UpdateListItems方法。jQuery(1.7.1)和SPSServices(0.7.0)的最新版本

我的第一个方法是使用valuepairs选项。我有两个阵列可以用来为它提供数据。在两个价值观上都很好。然后我尝试静态填充变量并使用它们。同样的结果。切换到CAML批处理方法。同样的结果

完整功能状态始终为“成功”。列表中不会写入任何内容

var batch = "<Batch OnError='Continue'><Method ID='1' Cmd='New'>";
batch += "<Field Name='" + varTitle + "'>" + varTitle_val + "</Field>";
batch += "<Field Name='" + varformid + "'>" + varformid_val + "</Field>";
batch += "<Field Name='" + varee1 + "'>Hi!</Field>";
batch += "<Field Name='" + varee2 + "'>there</Field>";
batch += "<Field Name='" + varee3 + "'>how</Field>";
batch += "<Field Name='" + varee4 + "'>are</Field>";
batch += "</Method></Batch>";
$().SPServices({
  operation: "UpdateListItems",
  batchCmd: "New",
  listName: "CRMSAccessRequest",
// valuepairs: [[arFields[0],arValues[0]],[arFields[1],arValues[1]],[arFields  [2],arValues[2]]],  //fails with more than two fields
// valuepairs: [[varTitle,varTitle_val],[varformid,arValues[1]],[varee1,varee1_val],[varee2,varee2_val]],  // ditto
  updates: batch,      
  completefunc: function(xData, Status) {
    alert("status of write attempt: " + Status);
 }
}); //SPServices
var batch=”“;
批处理+=“”+varTitle_val+“”;
批次+=“”+varformid_val+“”;
批次+=“嗨!”;
批次+=“那里”;
批次+=“如何”;
批次+=“是”;
批次+=“”;
$().SPServices({
操作:“UpdateListItems”,
batchCmd:“新”,
列表名称:“CRMSAccessRequest”,
//值对:[[arFields[0],arValues[0]],[arFields[1],arValues[1]],[arFields[2],arValues[2]],//出现两个以上字段时失败
//值对:[varTitle,varTitle\u val],[varformid,arValues[1],[varee1,varee1\u val],[varee2,varee2\u val],//同上
更新:批量,
completefunc:函数(扩展数据、状态){
警报(“写入尝试状态:+状态”);
}
}); //SPServices
有什么建议吗?

您得到的“成功”只是告诉您交易成功。您需要查看返回的XML,以了解可能存在哪些问题

最简单的方法: 警报(扩展数据.响应文本)


我猜您的一个或多个字段名不正确。很难说,因为您正在使用变量作为列名。

将进行调查,谢谢。我只是使用纯Ajax将多个字段写入不同的列表,所以我知道这是可以做到的!迷人的。字段名很简单(ee1、ee2),但我遇到了这个错误:“一个或多个字段类型未正确安装”,然后检查内部名称,“ee1”被呈现为“_e_e1”,等等。使用这些名称还没有帮助,但至少我看到了困难所在。我不记得你书中对列名的这种特殊修改了!这很重要。随后的测试表明,像“ee1”这样的字段名永远不能使用。我怀疑是使用了结尾的数字,这与SP使用的内部重命名系统存在某种冲突。拥有这样的列总是会产生“字段类型未正确安装”错误。删除列并替换为“eform_a”会获得预期的成功。您需要为列使用InternalName。这是我的一篇[博文][1],可能会对你有所帮助。[1] :好的,这是我的错误。SP将此字段从“ee1”重命名为“%5Fx0065%5Fe1”。当我看到这一点时,我首先尝试写入“%5Fx0065%5Fe1”。出现“错误字段类型”错误。然后,我试着给‘e_e1’写信。那次失败的原因也是一样的。关键是要理解正确的内部名称是:“\u x0065\u e1”。成功了。