为何以下代码行出现Invalid left-hand side in postfix expression错误?
问题解决:AJAX调用触发
Invalid left-hand side in postfix expression错误 错误根源
出错的代码行data: 'Action=AutionMaxBid&AuctionItemID='+<?php echo $bidItemID ;?>+'',存在两处问题:
- 末尾多余的
+''拼接完全无意义,反而可能干扰JS语法解析 - PHP输出的
$bidItemID未做必要的语法包裹,若变量为字符串或包含特殊字符,会直接破坏JS代码结构,触发语法错误
修复方案
直接将PHP变量嵌入请求字符串中,无需额外拼接操作:
data: 'Action=AutionMaxBid&AuctionItemID=<?php echo $bidItemID; ?>',
如果需要明确将$bidItemID作为字符串处理,可给PHP输出内容添加引号:
data: 'Action=AutionMaxBid&AuctionItemID=' + '<?php echo $bidItemID; ?>',
注:原代码中的
&是HTML实体,在JS中直接使用&更规范,浏览器也能正确解析。
修复后的完整函数
function AutoRefresh(){ $.ajax({ type: "post", url: "AjaxCall.php", data: 'Action=AutionMaxBid&AuctionItemID=<?php echo $bidItemID; ?>', cache: false, success: function(data){ var autions = jQuery.parseJSON(data); if(autions.aution_max>0){ $("#CurrentBid").html(formatCurrency(parseFloat(autions.aution_max).toFixed(2))); }else { $("#CurrentBid").html(formatCurrency(parseFloat(autions.aution_max).toFixed(2))); } $(".CurrentBidTop").html(formatCurrency(parseFloat(autions.aution_max).toFixed(2))); // $(".CurrentBidTop2").html(formatCurrency(parseFloat(autions.aution_max).toFixed(2))); $("#bidIncrement").html(autions.bid_Increment); $("#bidAmountCount").html(autions.auction_count); var bidAmountEnter = $('#bidAmountEnter').attr('placeholder'); // var bidIncrement=autions.bid_Increment; //alert(parseFloat(autions.aution_max)+parseFloat(autions.bid_Increment)); var bidIncrementFinal=parseFloat(parseFloat(autions.aution_max)+parseFloat(autions.bid_Increment)).toFixed(2); var currentProxyBid='<?php echo $proxyCid[0]["proxyamount"];?>'; var ItemMaxBid='<?php echo $proxyOid[0]['proxyamount'];?>'; //console.log(autions.proxybid); //console.log(currentProxyBid); if(ItemMaxBid < parseFloat(autions.proxybid)){ location.reload(true); //console.log("inside"); //$("#proxyBid").html(autions.proxybid); }else{ //console.log("empty"); //$("#proxybidd").html(''); } var CurrentBid='<?php echo $bidcurrent;?>'; console.log(parseFloat(CurrentBid)); console.log(parseFloat(autions.aution_max)); if(parseFloat(CurrentBid) < parseFloat(autions.aution_max)){ $("#bidAmountEnter").attr("placeholder", formatCurrency(parseFloat(bidIncrementFinal).toFixed(2))); location.reload(true); /* $("#bidAmountEnter").val('$'+formatCurrency(parseFloat(bidIncrementFinal).toFixed(2))); */ } } }); }
内容的提问来源于stack exchange,提问作者Thomas Short
相关产品推荐
相关产品推荐

