我有一个mySQLquery
,其中一些field
s包含带空格的单词。我正在使用PHP创建一个array
。
$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>
数据经验被写成:
data experience=“3”years=”而不是3年。
为什么会这样?我也试过用双引号,但没有成功。
最佳答案
空格在没有引号的情况下生成一个新属性。这可以在这里演示:
http://jsfiddle.net/3mssyfue/
所以解决这个问题的一种方法是手动引用PHP中的属性:
"details" =>
'data-name="'.$r['first_name'].'" '.
'data-image="'.' '.$r['image'].'" '.
'data-experience="'.$r['experience'] .'"',
所以当它回来的时候就是
data-name="3 years"
。不过,我认为更好的方法是分别传递每个值并在JS中构建属性。我不做太多JS,但我认为http://api.jquery.com/jquery.each/使用单独的值也可以。
关于javascript - 如果单词包含PHP数组循环中的空格,则写入时数据会 split ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47059340/