2015-11-22 7 views
0

В основном мой код работает следующим образом:Данные в массиве не изменяются после удаления

1 * Отправить первую строку. 2 * Получите ответ и отослал его обратно. 3 * удалите одну строку и проверьте следующую строку, которая будет первой строкой.

Однако в моем коде данные не изменяются вообще во всем процессе он проверяет только первую строку снова и снова это код, который я попробовал:

var resource = $('#resource').val().replace(/[\n\r](?!\w)/gi, "").split("\n"); 

$.each(resource , function() { 
    $.ajax({ 
    type:'POST', 
    url :'curl_check.php', 
    data: 'email='+resource[0], 
    success: function(data) { 
     alert(resource); 
     resource.splice(0, 1); 
     $('#resource').val(resource.join("\n")) 
    } 
    }); 
}); 

В принципе, даже линия удаляется из в текстовой области значения остаются неизменными.

ответ

3

Код странно, я думаю, вы попали вопрос, потому что вы «полоса» resource массива в обратном вызове, который является асинхронным, это означает, что вы всегда посылаете первую запись массива в цикле ...

«Hack», который вы можете попытаться доказать, это добавить async: false в параметр ajax, хотя это не совсем правильный способ сделать это.

+0

Да, потому что, если я не использую его внутри успеха, строки будут удалены все, и после этого ответ начнет появляться, что я хочу, поскольку я сказал, что хочу удалить строку за строкой, так что CHeck и delete. проверить и удалить, как это – SniperCoder

+0

сплайсинга массив внутри цикла уже причудливый, если вам действительно нужно сделать это 1 на 1, я предлагаю вам сделать еще один цикл и сделать запрос 'async: false', как я и предложил. то есть var length = resource.length; 'for (var i = 0; i

+0

Хотя, опять же, я не думаю, что это хороший способ сделать это ... может быть, вы можете объяснить, что вы действительно хотите сделать. –

0

Для меня похоже, что вы удаляете символы новой строки и символы строки с вашим регулярным выражением в строке 1, но затем вы пытаетесь выполнить split (\ n). Этот раскол не сработает, потому что вы просто удалили новые строки ничем.

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