2017-08-30 15 views
0

をエスケープ文字列を理解することができません:私は以下のように定義されたメソッドを持っているのonclickメソッドから

function updateManagerPreferences(companyId, managerId, userId) { 
    console.log('inside method'); 
    $.ajax({ 
    type: 'GET', 
    url: admin_url + "/updatemanager/" + companyId + "/" 
    + managerId + "/" + userId, 
    encode: false, 
    crossDomain: true 
    }).done(function (tresult) { 
    var success_result = jQuery.parseJSON(JSON.stringify(tresult)); 
    console.log(success_result); 
    }); 
} 

それはonclickのボタンから3つのパラメータを取り、私は次のようにメソッドを呼び出ししようとしています:

<input type='button' class='btn btn-sm btn-success' value='Update' onclick='updateManagerPreferences(" + companyId + "," + $('#managerDropDown').val() + "," + result.ResponseMessage.users[i].user_id + ");'/> 

私はすべての同様のstackoverflow答えを言及したが、それらのどれも助けなかった。

誰かが間違っていますか?

+2

あなたの$ .ajax呼び出しのURLにmanagerIdの前に+がないようです。 – CF256

+0

JSやその他の言語からHTMLを生成していますか?文字列デリミタはあまり意味がありません。邪魔にならないイベントハンドラを使用すると、文字列連結の混乱を避けることもできます。 –

+0

隠しフィールドを使用してその値を保存する方法はありますか? –

答えて

0

jQueryを使用して関数と要素の値から直接値を取得することで解決できます。

<input type='button' class='btn btn-sm btn-success' value='Update' id='updatemanager' /> 

<script> 
$("#updatemanager").on("click",function(){ 
    var managerId = $('#managerDropDown').val(); 
    var userId = result.ResponseMessage.users[i].user_id; 
    $.ajax({ 
    type: 'GET', 
    url: admin_url + "/updatemanager/" + companyId + "/" 
    + managerId + "/" + userId, 
    encode: false, 
    crossDomain: true 
    }).done(function (tresult) { 
    var success_result = jQuery.parseJSON(JSON.stringify(tresult)); 
    console.log(success_result); 
    }); 
}); 
</script> 
関連する問題