如何在php

时间:2016-06-01 10:24:23

标签: javascript php arrays

我在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'

1 个答案:

答案 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"
}