Доброго вам времени суток, уважаемые форумчане.
Столкнулся с проблемой нажатия на кнопку сайта.
Инструментарий:
Delphi XE7 --> FM;
Indy 10.6.0.5169 --> idHTTP
Свойства idHTTP1:
CookieManager | IdCookieManager1
AllowCookies | True
HandleRedirects | True
Процедура в разрабатываемом приложении:
procedure SelenaURL.SendData(Captcha: string);
var
i: Integer;
Text: String;
begin
try
Params := TStringList.Create;
Params.Add('title=' + fMain.eTitle.Text);
Params.Add('cat_id=121');
case fMain.cbCategory.ItemIndex of
0: Params.Add('pred=1');
1: Params.Add('pred=2');
end;
Params.Add('price=' + fMain.eCost.Text);
Params.Add('currency=1');
case fMain.cbCity.ItemIndex of
0: Params.Add('city_id=1');
1: Params.Add('city_id=2');
2: Params.Add('city_id=3');
3: Params.Add('city_id=4');
4: Params.Add('city_id=5');
end;
Text := fMain.mText.Lines[0];
for i := 1 to fMain.mText.Lines.Count - 1 do
Text := Text + #13#10 + fMain.mText.Lines[i];
Params.Add('description=' + Text);
Params.Add('name_from=' + fMain.eName.Text);
Params.Add('email_from=' + fMain.eMail.Text);
Params.Add('phone_from=' + fMain.ePhone.Text);
for i := 1 to fMain.ListBox2.Count do
Params.Add('photo_' + IntToStr(i) + '=' + fMain.ListBox2.Items[i - 1]);
Params.Add('period=30');
Params.Add('captcha=' + Captcha);
Params.Add('submit=Добавить объявление'); // Что с ним, что без него запрос не уходит
Response := fMain.IdHTTP1.Post(aURL, Params);
fMain.mText.Lines.Clear;
fMain.mText.Text := Response; // Тут можно увидеть, что переадресации никакой не было. Где стояли, там и стоим
finally
Params.Free;
end;
end;
Код самой кнопки:
<input class="buttom" onclick="addForm(document.getElementById('f'))" value="Добавить объявление" type="submit">
Код процедуры, выполняемая кнопкой:
/* Подгружаем форму - добавить объявление */
function addForm(value) {
form_result = document.getElementById('ajax_result');
form_indicator = document.getElementById('ajax_indicator');
form_result.className = 'ajaxform-result-hide';
form_indicator.innerHTML = '<img src="'+AJAX_DIR+'templates/default/images/indicator.gif">';
form_indicator.className = 'ajaxform-indicator';
JsHttpRequest.query(
AJAX_DIR+'ajax.php?act=add',
{
q: value
},
function(result, errors) {
form_result.innerHTML = '';
if (result['q']) {
form_result.innerHTML = '<div class="ajaxform-result"><fieldset class="fieldset_error"><legend class="legend_error">Ошибка:</legend>'+result['q']+'</fieldset></div>';
form_result.className = '';
form_indicator.innerHTML = '';
document.getElementById("ajax_form").style.display = 'block';
}else{
if(result['action'] == '3') {
form_result.innerHTML = '<div class="ajaxform-result"><fieldset class="fieldset_msg"><legend class="legend_msg">Сообщение:</legend><div class="msg">Ваше объявление было отправлено на проверку. <a href="'+AJAX_DIR+'">Перейти на главную страницу</a>.<br><br>Ваши данные: <br><b>ID:</b> '+result['id']+' <br><b>Пароль:</b> '+result['password']+'</div></fieldset>';
}else{
form_result.innerHTML = '<div class="ajaxform-result"><fieldset class="fieldset_msg"><legend class="legend_msg">Сообщение:</legend><div class="msg">Ваше объявление "<b>ID'+result['id']+'</b>" было успешно добавлено. <a href="'+AJAX_DIR+''+result['id']+'.html">Перейти к объявлению</a>.<br><br>Ваши данные: <br><b>ID:</b> '+result['id']+' <br><b>Пароль:</b> '+result['password']+'</div></fieldset>';
}
form_result.className = '';
form_indicator.innerHTML = '';
document.getElementById("ajax_form").style.display = 'none';
}
},
false // не кэшировать
);
}
/* конец */
Наведите хотя бы в какую сторону копать. Срочно необходимо завершить приложение, но возникла данная проблема.
Буду рад любой вашей помощи. Спасибо!