无法使用JQuery.ajax传递字符串

时间:2014-10-24 12:01:39

标签: javascript ajax xml

我有一个输入;

 <input id="product" type="button" value="Add To Cart" onclick="addAjax({{=dogProducts[i].name}})"/> 

输入是fdgdg我验证了这个购买看页面元素。和这个Ajax函数:

function addAjax(id){
    $("#output").text("") ;
    $("#ajaxerror").text("");
    //alert(id)
    console.log(id);
    jQuery.ajax({
        type:'GET',
        url:'/pkpetscart/default/addtocart',
        data: {
            product:id
        },
        timeout: 1000,
        success: function(msg) {
            console.log(msg);
            // place returned value  in the DOM
            jQuery('#output').html(msg)
        },
        error: function(objAJAXRequest, strError){
            $( "#ajaxerror" ).append( " AJAX error:" + strError );
        }
    });
}

当我尝试运行它时,firebug显示

ReferenceError: fdgdg is not defined
http://127.0.0.1:8000/pkpetscart/default/dogs
Line 1

我如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

您需要在引号中传递参数以使其成为字符串,如果它不在引号中,则将其视为您尚未定义的变量。因此,您收到错误

  

ReferenceError:未定义fdgdg

使用

onclick="addAjax('{{=dogProducts[i].name}}')"

而不是

onclick="addAjax({{=dogProducts[i].name}})"