2013-10-13 93 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);

相關問題