javascript - 如果单词包含PHP数组循环中的空格,则写入时数据会 split

标签 javascript php jquery html

我有一个mySQLquery,其中一些fields包含带空格的单词。我正在使用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/

相关文章:

jquery - 使用 tablesorter 设置列的默认排序

javascript - 每次输入字段发生错误时,如何使用 jQuery Validate 显示和隐藏自定义错误消息?

javascript - v-for 动态组件 vuejs 1.0

PHP - 如何获取类的成员函数列表?

php - Codeigniter删除记录在哪里一些select查询?

javascript - 页面内容中的 HTML Iframe

javascript - 当 div 元素隐藏时跳过 jQuery 验证

javascript - 多个 div 到一个 ajax 页面

javascript - IE7 上的 jquery.ui.autocomplete.js 问题

javascript - 从当前 URL 获取#id