Javascript 如果单词包含PHP数组循环中的空格,则在写入时分割数据

Javascript 如果单词包含PHP数组循环中的空格,则在写入时分割数据,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个mySQL查询,其中一些字段s包含带空格的单词。我正在使用PHPwhile循环创建一个数组 $rows = array(); while($r = $q->fetch()) { $rows[] = array( "id" => $r['id'], "first_name" => $r['first_name'], //details array "details" => 'data-name='.$r['first_name'].' '. 'data-

我有一个mySQL
查询
,其中一些
字段
s包含带空格的单词。我正在使用PHP
while循环创建一个
数组

$rows = array();
while($r = $q->fetch())
{
$rows[] = 
array(
"id" => $r['id'], 
"first_name" => $r['first_name'], 

//details array
"details" => 
'data-name='.$r['first_name'].' '. 
'data-image='.' '.$r['image'].' '. 
'data-experience='.$r['experience'], 
......
结果将使用JavaScript显示在另一个页面中:

$('.cp-details').click(function(e) {
e.preventDefault();
var $this = $(this)
var name = $this.data('name');
var image = $this.data('image');
var experience = $this.data('experience');
经验数据有5年等字样

details: {
title: 'User Details',
display: function (data) {
if (data.record) {
return '<a href="#" class="cp-details" ' + data.record.details +' ><u>View Details</a></a>';
}
},
sorting:false,
width: '10%'
},
详细信息:{
标题:“用户详细信息”,
显示:功能(数据){
if(数据记录){
返回“”;
}
},
排序:假,
宽度:“10%”
},
经验数据正在被截断:

检查开发人员控制台中的元素可以提供:

<a href="#" class="cp-details" data-name="Pamela" data-image="../images/img_care_provider/pamela.jpg" data-experience="3" years=""><u>View  Details</u></a>

将数据体验写成: 数据体验=“3”年=“而不是3年。


为什么会这样?我也尝试过使用双引号,但没有成功

空格在未加引号时生成新属性。这可以在这里演示:

因此,解决此问题的一种方法是手动引用PHP中的属性:

"details" => 
'data-name="'.$r['first_name'].'" '. 
'data-image="'.' '.$r['image'].'" '. 
'data-experience="'.$r['experience'] .'"', 

因此,当它回来时,它是
data name=“3年”
。然而,我认为更好的方法是单独传递每个值,并在JS中构建属性。我不怎么做JS,但我认为使用单独的值也可以。

@chris85抱歉..我无法理解。我是一个新手程序员。非常感谢你。我尝试使用双引号:“data experience=”.“$r['experience']”,因为双引号是用PHP封装的,所以当它返回到浏览器时,双引号就消失了。是的。现在我明白了。我也会尝试理解如何在JS中构建属性。再次感谢您的帮助。