Сохраните значение нажатия кнопки в переменной, чтобы его можно было сохранить в списке Sharepoint - PullRequest
0 голосов
/ 09 июля 2020

Я попытался сохранить значение нажатия кнопки в переменной, а затем использовать эту переменную для сохранения в списке sharepoint, но данные не сохраняются в списке sharepoint. Ниже представлена ​​часть кнопки HTML. Я просто хочу сохранить значение нажатия кнопки в переменной, чтобы я мог сохранить список значений Sharepoint.

<button type="button" id="btn-submit-feedback4" value="Article4"  class="btn_article">Download</button></a>
<button type="button" id="btn-submit-feedback3" value="Article5"  class="btn_article">Download</button></a>

<script>

    var siteurl = _spPageContextInfo.webAbsoluteUrl;
    var listTitle = "SeriesArticle";
    $(document).ready(function () {
        SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () { });
                var id;
            $(".btn_article").click(function () {
               insertFeedback();
              id=this.value;
              })
    });
    
    
    

    
    function insertFeedback() {
        $(".page_loading_section").show();
        var clientContext = new SP.ClientContext(siteurl);
        var list = clientContext.get_web().get_lists().getByTitle(listTitle);
        var itemCreateInfo = new SP.ListItemCreationInformation();
        
    
       
       
         var value1 = document.getElementById('txtname')  
        .value;  
    
    var value2 = document.getElementById('txtdesignation')  
        .value;  
      
        var articlename=id;
        this.oListItem = list.addItem(itemCreateInfo);

        oListItem.set_item('Title', "Aticle Series");

       
        oListItem.set_item('Bunit', bname);
        oListItem.set_item('BUnit', bunit);
        
         oListItem.set_item('ArticleTitle', articlename);
        oListItem.update();
        clientContext.load(oListItem);
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

    }

    function onQuerySucceeded() {
        $(".page_loading_section").hide();
       
    }

    function onQueryFailed(sender, args) {
        writeToConsole(args.get_message());
        logMessageToULS(args.get_message());
        //  console.log(+args.get_message() + '\n' + args.get_stackTrace());
        $(".page_loading_section").hide();
    }



    
</script>

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Я изменил ваш код, как показано ниже, и протестировал его в своей среде SPO, пожалуйста, воспользуйтесь ссылкой:

$(document).ready(function () {

    $(".btn_article").click(function (e) {
        // show loading scanner
        //$(".page_loading_section").show();

        // insert
        SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {
            insertFeedback(e.currentTarget.value);
        });

    })
});

function insertFeedback(v) {
    var siteurl = _spPageContextInfo.webAbsoluteUrl;
    var listTitle = "SeriesArticle";

    var clientContext = new SP.ClientContext(siteurl);
    var list = clientContext.get_web().get_lists().getByTitle(listTitle);

    var articlename = v;

    var itemCreateInfo = new SP.ListItemCreationInformation();
    oListItem = list.addItem(itemCreateInfo);

    oListItem.set_item('Title', "Aticle Series");
    oListItem.set_item('mytitle', articlename);

    oListItem.update();
    clientContext.load(oListItem);
    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

}

function onQuerySucceeded() {
    //$(".page_loading_section").hide();
    console.log("inserted successful");
}

function onQueryFailed(sender, args) {
    console.log(+args.get_message() + '\n' + args.get_stackTrace());
    //$(".page_loading_section").hide();
}

BR

0 голосов
/ 09 июля 2020

я думаю, вам следует поместить внешнюю функцию var id;, потому что она недоступна, и не забудьте поставить id = this.value перед insertFeedback();, чтобы убедиться, что это id уже сохраняет значение.

и код будет таким:

var siteurl = _spPageContextInfo.webAbsoluteUrl;
var listTitle = "SeriesArticle";
var id;
$(document).ready(function () {
    SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {});
    $(".btn_article").click(function () {
       id = this.value;
       insertFeedback();      
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...