X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Array_diff() - получение уникальних значений, В FF все работает как надо а в опера нет!!!
toorr2p
toorr2p
Topic Starter сообщение 9.10.2010, 20:48; Ответить: toorr2p
Сообщение #1


Привет!

Помогите разобратся в чем моя ошибка?

Пишу скриптик который выполняет такую функцию - сравнивает два масиива (первый со вторым) и возвращает значения первого массива которые не встречаются во втором (уникальные).

Это форма, два поля в которые вводятся ключевые слова через перенос, т.е каждое слово с новой строки.
Форма шлется по Ajax в обработчик action.php где содержимое полей перекодировывается, приводится к общему регистру и дальше формируются два массива первый из содержимого первого поля, второй из содержимого второго поля.

И далее эти массивы сравниваются функцией array_diff(), формируется третий массив содержащий уникальные значения. Затем этот массив переводится в строку и отдается в responseText как ответ Ajax запроса. Этим ответом обновляем содержимое второго поля - это результат.

В FF ввожу в первое поле:

Вася
Петя
Катя
Маша

Во второе поле:

вася

Возвращается то что нужно:

петя
катя
маша

В опере же всеравно возвращается:

вася
петя
катя
маша

НЕ МОГУ ПОНЯТЬ В ЧЕМ ДЕЛО, УЖЕ ГОЛОВУ СЛОМАЛ ПОМОГИТЕ!!!

Это коды:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Unique</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<link rel="stylesheet" type="text/css" href="css.css"/>
<script type="text/javascript" src="mootools-1.2.4-core-yc.js"></script>
<script type="text/javascript">
window.addEvent('domready', function(){
$('submit').addEvent('click', function(){
$('form').get('send', {
method: 'post',
url: 'action.php',
onRequest: function(){

},
onSuccess: function(responseText){
alert(responseText);
$('second').value = '';
$('second').value = responseText;
}
}).send();
});
$('reset').addEvent('click', function(){
$('second').value = '';
});
});
</script>
</head>
<body>
<div class="wrapper">
<form id="form" method="post" action="" accept-charset="utf-8">
<label for="first">Text</label><br/>
<textarea id="first" name="first" rows="" cols=""></textarea><br/>
<label for="second">Pattern / Result</label><br/>
<textarea id="second" name="second" rows="" cols=""></textarea>
<p><input id="submit" class="submit" type="button" value="Unique"/>&nbsp;&nbsp;<input id="reset" class="submit" type="button" value="Reset"/></p>
</form>
</div>
</body>
</html>


Обработчик

[php]<?php
setlocale (LC_ALL, "ru_RU.CP1251");
if(isset($_POST['first']) && $_POST['second']){
$first = iconv("utf-8", "cp1251", $_POST['first']);
$second = iconv("utf-8", "cp1251", $_POST['second']);

$first_str = trim(strtolower($first));
$second_str = trim(strtolower($second));


if($first_str !== '' && $second_str !== ''){
$first_array = explode("\n", $first_str);
$second_array = explode("\n", $second_str);

$result = implode("\n", array_diff($first_array, $second_array));
echo $result;
}
}
?>[/php]


Посмотреть работу скрипта можно здесь - http://profnode.biz/subdmn/unique/index.html
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 10.10.2010, 12:49; Ответить: ZiTosS
Сообщение #2


Вячеслав, подебаж alert'ами до отправки в опера и FF и сравни. А затем распечатай в результат на стороне PHP те данные, которые передал и увидишь разницу. Пока не могу помочь, временно занят
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
toorr2p
toorr2p
Topic Starter сообщение 10.10.2010, 18:46; Ответить: toorr2p
Сообщение #3


Мне кажется проблема в кодировке, но может я и ошибаюсь.
Вот второй вариант без Ajax и в нем после первой отправки формы в первое поле подставляется тоже самое значение только уже из POST может из-за этого???

http://profnode.biz/subdmn/unique/php/index.php
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 10.10.2010, 19:33; Ответить: sc2r2bey
Сообщение #4


js работает с utf-8


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
toorr2p
toorr2p
Topic Starter сообщение 10.10.2010, 20:26; Ответить: toorr2p
Сообщение #5


Сделал уже без JS Ajax. Все равно не работает как надо.
http://profnode.biz/subdmn/unique/php/index.php
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 11.10.2010, 15:16; Ответить: ZiTosS
Сообщение #6


Вячеслав, попробуй в присланных строках перед тем как резать их по \n:
[php]$str = str_replace("\r\n", "\n", $str);[/php]
Если уж это не поможет, то включу стационарный и проверю в Opera. Просто возможно в Opera переход строки в поле снабжается возвратом каретки


Поблагодарили: (0)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
toorr2p
toorr2p
Topic Starter сообщение 12.10.2010, 10:56; Ответить: toorr2p
Сообщение #7


Ой спасибо тебе БРАТ! ))) у тебя золотая голова!!!!
Как же ты догадался)))
все работает - array_diff()

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Получение гос. гранта для IT сферы
4 metvekot 1528 22.3.2024, 21:06
автор: Rebex
Открытая тема (нет новых ответов) Получение сертификатов по Google Analytics, по Google AdWords за 1000 рублей
1 bgtk 2955 18.9.2016, 21:30
автор: bgtk
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыПолучение естественных ссылок. Crowd Marketing
Ручная постановка ссылок на тематических площадках
11 99cents 6567 26.9.2014, 20:05
автор: 99cents
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыПолучение бесплатного траффика с контакта и его монетизация
От 5к и до сколько хватит времени и терпения
140 Stinker007 58527 20.8.2014, 11:15
автор: lostprophet
Открытая тема (нет новых ответов) Вывод в цикле значений из базы!
3 Panich 4256 27.5.2011, 16:14
автор: -Panich-


 



RSS Текстовая версия Сейчас: 16.4.2024, 9:20
Дизайн