如何在ajax中传递数据?

时间:2017-11-21 12:26:47

标签: javascript jquery ajax

我想在数据中传递o_id但是当我尝试它时会显示错误:

  

ReferenceError:左侧无效分配

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
   <script type="text/javascript">
    $("#assign").click(function(){
    params = ""
    $("td[contentEditable='true']").each(function(){
        if($(this).text() != "") {
            if(params != "") {
                params += "&";
            }
            params += $(this).data('id')+"="+$(this).text();
        }
    });
    if(params!="") {
          var o_id = <?php echo $o_id ?>;
        $.ajax({
            url: "assign_product.php",
            type: "POST",
            data:params+'&o_id'=o_id,
            success: function(response){
              $("#ajax-response").append(response);
              $("td[contentEditable='true']").text("");
            }
        });
    }
});
</script>

3 个答案:

答案 0 :(得分:4)

您应该将参数作为对象而不是字符串传递,params应该是一个对象,您可以将键/值附加到此对象:

var params = {};

$("td[contentEditable='true']").each(function(){
  if( $(this).text() != "" ) {
    params[ $(this).data('id') ] = $(this).text();
  }
});

您还需要替换:

if(params!="") {

通过:

if( $.isEmptyObject(params) ){

检查对象是否为空。

完整代码:

$("#assign").click(function() {
  var params = {};

  $("td[contentEditable='true']").each(function() {
    if ($(this).text() != "") {
      params[$(this).data('id')] = $(this).text();
    }
  });

  if ($.isEmptyObject(params)) {
    params["o_id"] = <?php echo $o_id ?>;

    $.ajax({
      url: "assign_product.php",
      type: "POST",
      data: params,
      success: function(response) {
        $("#ajax-response").append(response);
        $("td[contentEditable='true']").text("");
      }
    });
  }
});

希望这有帮助。

答案 1 :(得分:1)

此行中有语法错误:

data:params+'&o_id'=o_id,

=符号必须在引号内。 这是因为您收到了有关assignment

的消息

答案 2 :(得分:-3)

这不行:data:params+'&o_id'=o_id, 请参阅文档,不要忘记content-typedataTypehttps://api.jquery.com/jquery.post/ 此致

请检查这个json:

var request = {CompanyDB: sapws.dbName, UserName: sapws.wsUser, Password: sapws.wsPass};
                    $.ajax({
                        type: "POST",
                        url: sapws.wsUrl + "/Login",
                        contentType: "text/plain",
                        data: JSON.stringify(request),
                        async: false,
                        xhrFields: {
                            withCredentials: true,
                        },
                        //crossDomain: true,
                        beforeSend: function (req) {

                        },
                        success: function (jsonData, status, req) {

                            document.cookie = "B1SESSION=" + jsonData.SessionId + "; expires=Thu, 18 Dec 2019 12:00:00 UTC; path=/";
                            sapws.wsKey = jsonData.SessionId;

                            var response = sapws.slSend("GET", "/EmployeesInfo?$filter=U_AppUser eq '" + username + "' and U_AppPass eq '" + userpass + "' ", "");
                            if (response.value.length > 0) {
                                sapws.userLogin = 1;
                            }
                        },
                        error: function (data, status, req) {
                            console.log("error log2");
                            console.log(status, req);

                        }
                    });