如果单词包含来自PHP数组循环的空格,则数据会被分割

时间:2017-11-01 16:24:04

标签: javascript php jquery html

我有一个mySQL query,其中一些field包含带空格的单词。我正在使用PHP array创建while loop

$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%'
},

体验数据被截断:

在开发者控制台中检查元素:

<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年。

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

1 个答案:

答案 0 :(得分:1)

空格在不加引号时生成新属性。这可以在这里证明:

http://jsfiddle.net/3mssyfue/

所以解决这个问题的一种方法是手动引用PHP中的属性:

sudo -u www-data adb devices -l

所以当它返回时它是"details" => 'data-name="'.$r['first_name'].'" '. 'data-image="'.' '.$r['image'].'" '. 'data-experience="'.$r['experience'] .'"', 。但是我认为更好的方法是单独传递每个值并在JS中构建属性。我不会做很多JS,但我认为http://api.jquery.com/jquery.each/具有单独的值也可以。