2013-10-13 4 views
0

Я принимаю значения из скрытых полей, имеющихся в моей форме, используя jQuery. Каждое из этих значений присутствует в одинарных кавычках, таких как 'enable'. Теперь я создаю массив и нажимаю на него эти значения. Я отправляю этот массив с помощью javascript в файл PHP. Я отправляю этот массив через url attrubute метода jQuery AJAX. Код для этого выглядит следующим образом:Как удалить из каждого элемента массива в следующем сценарии?

$(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; 
     }   
    }); 
    }) 
}); 

Теперь PHP фрагмент кода из manage_users.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);

Смежные вопросы