【问题标题】:How can i add two variables between single quotes如何在单引号之间添加两个变量
【发布时间】:2019-12-07 01:29:01
【问题描述】:

我有

function delImage(posteId,imagebinId) { 
    $.get("<?php  echo base_url('/Home/deletePostimage/') ?>"); 

    return false; 
} 

我想成为 /Home/deletePostimage/posteId/imagebinId

我试过了

$.get("<?php  echo base_url('/Home/deletePostimage/')+posteId+"/"+imagebinId ?>"); 

但它将两个数字相除

like posteId=5 imagebinId =2

结果会是

/Home/deletePostimage/2,5

来自

的参数
<a class="postimgsd" onClick="if(confirm('Are you sure you want to delete this image ?')){delImage(<?php echo $value['id'],$get_images[0]['binId']; ?>); rmItem(<?php echo $i; ?>);}else{} ;  " >

【问题讨论】:

  • 为了清楚起见,您希望它是 /Home/deletePostimage/posteId/imagebinId 而不是 /Home/deletePostimage/5/2
  • @Shizukura posteId 和 imagebinId 是数字,所以它就像 /Home/deletePostimage/1220/3225
  • 如果您将 javascript 与 php 分开,将更容易理解和使用您的代码,但仍将其保留在同一个文件中。在文件顶部执行&lt;?php $url = base_url(...) . postId . '/' . imgId; ?&gt;。然后在文件下层,在js代码中:$.get('&lt;?=$url?&gt;');
  • 你也可以进一步分开。在执行const theGetUrl = '&lt;?=$url?&gt;'; 的php 位之后可能会立即有一些jscode,然后在您的实际js 脚本中它将是$.get(theGetUrl)

标签: javascript string-concatenation


【解决方案1】:

使用 ES6,您可以使用 string interpolation 来做到这一点:

$.get(`<?php  echo base_url('/Home/deletePostimage/${postId}/${imagebinId}') ?>`);

没有 ES6,还有另一个 answer 来回答它,或者使用这个:

var url = '/Home/deletePostimage/' + postId + '/' + imagebinId;
$.get("<?php  echo base_url('" + url + "') ?>");

另外,调用这个函数的代码实际上应该是:

<a class="postimgsd" onClick="checkDeletion()" />

<script type='text/javascript'>
    function checkDeletion() {
        if(confirm('Are you sure you want to delete this image ?')) {
            var postId = <?php echo $value['id']; ?>;
            var imagebinId = <?php echo $get_images[0]['binId']; ?>;
            delImage(postId, imagebinId);
            rmItem(<?php echo $i; ?>);
        }
    }
</script>

【讨论】:

  • ` $.get("");` 我得到了 Home/deletePostimage/$ %7BposteId%7D/$%7BimagebinId
  • @JDEV 我忘了说这需要 ES6。环境是否支持es6?
  • 那些我得到的结果,所以,如果它适合你,那么环境不支持es6
  • ""); 抱歉解释不好,如果我错了,请纠正我
  • @JDEV 没有整个表达式是"&lt;?php echo base_url(" + url + ") ?&gt;",它由三部分组成:"&lt;?php echo base_url("url") ?&gt;" 全部与用于字符串连接的+ 连接
【解决方案2】:

您需要记住,在将 html 发送到您的用户浏览器之前,PHP 是在后端处理的。也就是说,php 标签 (&lt;?php ... ?&gt;) 之间的所有内容都在 javascript 存在之前被渲染/处理。

因此,如果您将任何 JavaScript 代码放入 PHP 代码中,它将无法工作。

要使其工作并保持清洁,请执行以下操作:

function delImage(posteId,imagebinId) { 
    let url = "<?php  echo base_url('/Home/deletePostimage/') ?>";
    $.get(url + posteId + "," + imagebinId); 

    return false; 
}

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 2021-10-12
    • 2019-12-07
    • 2017-09-06
    • 2012-06-02
    • 2021-06-15
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多