我在javascript中有一个用,
分隔的数组。但在它们内部有一些值包含,
的值。我的问题是我不想爆炸这样的价值观,但php会这样做。有办法处理吗?
<form id="form" method="post">
<table>
<tr val="sprots, music, videos"><td>sprots, music, videos</td></tr>
......
......
<tr val="car"><td>car</td></tr>
</table>
<input type="hidden" name="category" id="category" value="">
</form>
<script>
var Data=[];
$('table').find('tr').each(function(){
Data.push($(this).attr('val'));
});
$('#category').val(Data);
</script>
<?php
$category=$_POST['category'];
$tmp=explode(',',$category);
?>
当它想要爆炸这样的值时会出现问题:array[0]='sports, music,videos'
。它将它作为3个分离的数组展开,就像这样:
array [0] =&#39; sports&#39;,array [1] =&#39; music&#39;,array [2] =&#39; videos&#39;。
我想把这个值作为一个独特的部分来爆炸,我的意思是这样的:
array[0]='sports, music,videos'
答案 0 :(得分:1)
作为Dinesh建议您可以更改分隔符,而不是逗号使用从不让您遇到麻烦的东西
例如:
var Data=[];
$('table').find('tr').each(function(){
Data.push('~'+ $(this).attr('val'));
});
console.log(Data);
输出
["~sprots, music, videos", "~car"]
但是当您发布数据时,它将变为~sprots, music, videos,~car
在服务器端你必须做这样的事情
<?php
$category=$_POST['category'];
$tmp=explode('~',$category);
unset($tmp[0]);
var_dump($tmp);
?>
输出
array(2) {
[1] =>
string(22) "sprots, music, videos,"
[2] =>
string(3) "car"
}