javascript - 通过单击按钮将 PHP 字符串变量传递给 Javascript 函数

标签 javascript php quotes

我正在动态创建多个按钮,并且需要通过 onclick 方法将一些 PHP 变量传递给 JavaScript 函数。

下面的代码在大多数情况下都可以正常工作,但如果变量包含双引号或单引号,则无法调用该函数。

我尝试将 htmlspecialcharactersENT_QUOTES 一起使用,解决了双引号的问题,但单引号仍然导致它失败。

<button id="modalBtn" type="button" onclick="ShowProduct('<?php echo $title ?>', '<?php echo $description ?>', '<?php echo $img ?>');">View Details</button>

关于如何解决这个问题有什么建议或者有更好的方法吗?

最佳答案

我建议您从变量创建 json 对象并将其作为参数传递,例如:

<button 
    id="modalBtn" 
    type="button" 
    onclick="ShowProduct(<?php echo json_encode(array($title, $description, $img))?>);">
        View Details
</button>

或者(更易读的键)

<button 
    id="modalBtn" 
    type="button" 
    onclick="ShowProduct(<?php echo json_encode(array('title' => $title, 'descr' => $description, 'img' => $img))?>);">
        View Details
</button>

您的 ShowProduct 函数可以定义如下:

function ShowProduct(params) {
    console.log( params );

    // do other stuff
}

更新:

如果你的变量已经在数组中,你可以:

// pass this array:
ShowProduct(<?php echo json_encode($your_array)?>)

// fill new array with required keys only
ShowProduct(<?php echo json_encode(array($your_array['title'], $your_array['description'], $your_array['img']))?>)

关于javascript - 通过单击按钮将 PHP 字符串变量传递给 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981393/

相关文章:

java - 如何从 JavaScript 中的 div 中获取值并对其进行排序?

php - move_uploaded_file 返回 false,但是 $_FILES ['uploadedfile' ] ['error' ] == 0

java - 字符串中的\\Q和\\E

php - 更改为 SSL 域会丢失子域多商店设置中的语言 (Magento)

php - 将 Dropbox 集成到我的网站中

linux - "Linux"Shell 中的引号中的引号中的引号

c - 这个 char* 赋值发生了什么? (混合类型的逗号运算符)

javascript - 是否可以在 Node 中设置 ECMAScript 版本?

javascript - 提交是获取输入的最后一个值

javascript - Angular Uncaught( promise ): ChunkLoadError: Loading chunk XXXfailed