пробелы в атрибутах html не должны быть проблемой (просто подумайте об атрибуте style
: в style="background-color: #F63;"
есть пробел, но он все равно будет работать. Однако если данные отправляются с использованием ajax, скорее всего, они получат закодированный URL (@Brad: urlencode
это то, что вы имели в виду, я подозреваю).
поскольку вы говорите, что данные поступают из таблицы SQL, скорее всего, сами данные передаются и хранятся либо в объекте, либо в массиве в php. Если так, то почему бы просто не json_encode
данные, а в javascript: JSON.parse(document.getElementById('theId').value);
. Это дает вам объект в JS, содержащий все ваши данные. Если требуется только 1 строка, вы можете использовать json_encode
, поместив ваши данные в массив-обертку и закодировав это ...
Обязательно используйте SINGLE кавычки, если вы приведете это к html:
<?php
$dbArray = array('this', 'array', 'contains','your','data', 'with spaces');
$html= '<input type="hidden" id="hiddenArray" value=\''.json_encode($dbArray).'\'/>';
Если вы используете одинарные кавычки, элемент будет деформирован, так как массивы в кодировке json содержат двойные кавычки:
<input type="hidden" id="hiddenArray" value='["this","array","contains","your","data","with spaces"]' />
Возможно, это не выглядит сексуально, но, как вы можете видеть, двойные кавычки установили бы значение элементов на [
...
Это не лишает пробелов, но и не доставит вам проблем.