Показать сообщение отдельно
Старый 21.12.2005, 20:22
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 2  
Ответить с цитированием
Antares
Banned
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Вообще если надо открыть непосредственно страницу, причем передавать надо постом (авторизация и т.п.), я бы сделал так:

Код:
/**
 *	
 *	@usage						submit(myTextArea, 'http://www.novemberain.com/test/', {from:'Michael', subj:'That works fine to me...'}, 'POST', true, myOnLoadHandler);
 *	@param	ta_name				Имя объекта TextArea / TextInput / TextField, содержащего инфу, которую надо передать
 *	@param	url					URL
 *	@param	[method]			HTTP-метод
 *	@param	[additionalData]	Объект, __все__ свойства которого будут переданы (и затем, соответственно, найдены в массивах $_POST / $_GET)
 *  @param  [handle]			Обрабатывать ли ответ сервера
 *  @param  [handler]			Функция-обработчик ответа
 *	@return						Булева величина. false в случае, если не указан URL
 */
function submit( ta_name:String, 
				 url:String,
				 additionalData:Object,
				 method:String,				 
				 handle:Boolean,
				 handler:Function ) : Boolean
{
	// Если не указано, куда отсылать -- возвращаем false
	if(!url) return false;
	
	// Объект, передающий данные
	var myLV:LoadVars = new LoadVars();
	
	// Сохраняем в нем переменные, которые надо передать
	myLV.text = this[ta_name].text;
	// 
	for(var key in additionalData)
	{
		myLV[key] = additionalData[key];
	}
	
	// Если метод не определен, передан неверно или равен null, используем GET, т.к. среда разработки не работает с POST (что и понятно, т.к. заголовки запроса не отправляются)
	if(!method || !(method == "GET" || method == "POST")) method = 'GET';
	
	if(handle)
	{
		myLV.onLoad = handler;
		myLV.sendAndLoad(url, myLV, method);
	} else {
		myLV.load(url);
	}
	
	// Отправили
	return true;
}
и затем в php, получив нужное в массиве $_POST и проделав нужные манипуляции без вывода в браузер, уходил бы на нужную страницу при помощи хедера Location.