I have tried 3 scenarios (and combinations). I can get jquery/SPServices recognised, but I can't get a query on lists to work (refer to last code quoted at bottom of this post).
I can get simple jquery call to work and simple SPServices call:
<script ...>
<script ...>
<asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderMain" runat="server">
I can get simple jquery call to work and simple SPServices call:
<script ...>
alert ("js on.");
$(document).ready(function() {
alert ('jQuery on.');
var thisSite = $().SPServices.SPGetCurrentSite();
alert ('Hello World! Your site is : ' + thisSite );
});
I put a simple script into a Napa page that uses context and can get the real site collection path:<script ...>
var context;
var web;
var spHostUrl;
var parentContext;
$(document).ready(function () {
var spHostUrl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
context = new SP.ClientContext.get_current();
parentContext = new SP.AppContextSite(context, spHostUrl);
web = parentContext.get_web();
alert(spHostUrl);
});
function getQueryStringParameter(urlParameterKey) {
var params = document.URL.split('?')[1].split('&');
var strParams = '';
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split('=');
if (singleParam[0] == urlParameterKey)
return decodeURIComponent(singleParam[1]);
}
}
I cannot get a call to an existing SP list to work, yet the same code works if inserted in a web page as Script web part!<asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderMain" runat="server">
<div>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/0.7.2/jquery.SPServices-0.7.2.min.js"></script>
<script language="javascript" type="text/javascript">
var context;
var web;
var spHostUrl;
var parentContext;
$(document).ready(function () {
var spHostUrl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
context = new SP.ClientContext.get_current();
parentContext = new SP.AppContextSite(context, spHostUrl);
web = parentContext.get_web();
$().SPServices({
operation: "GetListItems",
async: false,
weburl: spHostUrl + '/lcm',
listName: "Brisbane Inbox",
CAMLViewFields: "<ViewFields><FieldRef Name='Title' /><FieldRef Name='Debtor_x0020_Code' /><FieldRef Name='Patient_x0020_Exit_x0020_Date' /></ViewFields>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
var liHtml = liHtml + "<li>" + $(this).attr("ows_Debtor_x0020_Code") + "</li>";
var liHtml = liHtml + "<li>" + $(this).attr("ows_Patient_x0020_Exit_x0020_Date") + "</li>";
$("#tasksUL").append(liHtml);
});
}
});
});
function getQueryStringParameter(urlParameterKey) {
var params = document.URL.split('?')[1].split('&');
var strParams = '';
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split('=');
if (singleParam[0] == urlParameterKey)
return decodeURIComponent(singleParam[1]);
}
}
</script>
<ul id="tasksUL"/>
</div>
</asp:Content>