如何在ajax中传递数据?

Suc*_*eau 1 javascript ajax jquery

我想传入o_id数据,但是当我尝试它时会显示错误:

参考错误:左侧无效分配

<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>
Run Code Online (Sandbox Code Playgroud)

Zak*_*rki 5

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

var params = {};

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

您还需要更换:

if(params!="") {
Run Code Online (Sandbox Code Playgroud)

经过 :

if( $.isEmptyObject(params) ){
Run Code Online (Sandbox Code Playgroud)

检查对象是否为空。

完整代码:

$("#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("");
      }
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。