2013-10-13 47 views
0

我正在使用jQuery从我的表单中呈现隐藏字段的值。这些值中的每一个都存在于单引号内,如'enable'。现在,我正在创建一个数组并在其中推入这些值。我使用JavaScript将这个数组发送到PHP文件。我通过jQuery AJAX方法的url attrubute发送这个数组。它的代码如下:如何在以下场景中从每个数组元素中删除'?

$(document).ready(function() { 
    $(document).on('click', '#disable_url', function (e) {  
    e.preventDefault(); 

    var items = new Array(); 

    $("input:checked:not(#ckbCheckAll)").each(function() { 
     items.push($(this).val()); 
    }); 

    var str = $("#user_filter").serialize();  
    var str = decodeURIComponent(str); 

    var user_status = new Array(); 
    for (var i = 0; i < items.length; i++) { 
     user_status.push($("#"+items[i]).val()); 
    }  

    $.ajax({ 
     type: "POST", 
     url: "manage_users.php?op=disable_bulk_users&items="+items+"&options="+str+"&user_status="+user_status, 
     dataType: 'json', 
     success: function(data) { 
     var redirect_link = data.href; 
     window.location.href = redirect_link; 
     }   
    }); 
    }) 
}); 

现在从manage_users.php将PHP代码段如下:

$request = empty($_GET) ? $_POST : $_GET ; 
    $op  = $request['op']; 
    switch($op) { 
    case "disable_bulk_users": 
    /*I'm using explode here as I'm getting the comma separated list of strings and I want to convert it back into an array*/ 
    $user_ids = explode(',', $request['items']); 
    $user_statuses = explode(',', $request['user_status']); 
    print_r($user_statuses); 
    die; 
    break; 
    } 

如果我打印阵列$user_statuses它打印如下:

Array 
(
    [0] => \'enable\' 
    [1] => \'enable\' 
    [2] => \'enable\' 
    [3] => \'enable\' 
    [4] => \'enable\' 
    [5] => \'enable\' 
    [6] => \'disable\' 
    [7] => \'disable\' 
    [8] => \'disable\' 
    [9] => \'disable\' 
    [10] => \'disable\' 
    [11] => \'disable\' 
    [12] => \'disable\' 
    [13] => \'disable\' 
    [14] => \'disable\' 
    [15] => \'disable\' 
    [16] => \'disable\' 
    [17] => \'disable\' 
    [18] => \'disable\' 
    [19] => \'disable\' 
) 

其实我想删除字符串\'发生在开始和字符串\'发生在每个数组元素的末尾。除去这些字符串后,你能帮助我获得干净的阵列吗?提前致谢。

+0

因此,我认为你没有办法编辑你的表格来删除额外的引号? –

回答

1

如果你想这样做客户端:

user_status.push($("#"+items[i]).val().replace(/'/g,'')); 
1

试试这个:

function mytrim(&$item){ 
$item = trim($item, "\'"); 
} 
$array = array("\'test\'", "\'test2\'"); 

array_walk($array, "mytrim"); 
print_r($array);//Array ([0] => test [1] => test2) 
1
在PHP

$data = array_map('stripslashes', $data); 

,或者如果你想删除的报价太

$data = array_map('trim', $data, ['\\\'']) 
0

使用字符串替换从字符串中消除“\”。 $ status = str_replace(“\'”,'',$ user_statuses);

相关问题