我有一个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年。
为什么会这样?我尝试使用双引号也没有成功。
答案 0 :(得分:1)
空格在不加引号时生成新属性。这可以在这里证明:
所以解决这个问题的一种方法是手动引用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/具有单独的值也可以。