Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка форм на аяксе
 
 автор: jaroslav   (20.03.2009 в 19:23)   письмо автору
 
 

Здравствуйте.


Есть примерно такой код:




<FORM action="send.php" method="POST"  name="form">
<textarea name="mess" rows="16"></textarea>

<a href="javascript:void(null)" onclick="javascript:sendRequest(test.php?send='+document.form.mess.value, 'result', getRequest);">Отправить письмо</a>

</form>





письмо отправляется на аяксе.
Но в аякс файл переменная $send идет без переноса строк.
Например, было:

тест
тест
тест

а в переменную $send передается "тест тест тест"

Как это можно поправить?

  Ответить  
 
 автор: jaroslav   (21.03.2009 в 09:49)   письмо автору
 
   для: jaroslav   (20.03.2009 в 19:23)
 

Никто не знает ответ на этот вопрос???
Уже, кстати, поднимал раньше... )

  Ответить  
 
 автор: sim5   (21.03.2009 в 10:00)   письмо автору
 
   для: jaroslav   (20.03.2009 в 19:23)
 

Письмо вообще-то отправляется сервером. А с чего вы решили, что переводы строк пропадают, каким образом вы это проверяете?

  Ответить  
 
 автор: Jaroslav   (21.03.2009 в 10:46)   письмо автору
 
   для: sim5   (21.03.2009 в 10:00)
 

Вот пример:

index.php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script language="JavaScript" src="ajax.js" type="text/javascript"></script>
</head>
<body>

<FORM action="send.php" method="POST"  name="form">
<table>
<tr><td>
Текст сообщения<br>
<textarea  name="mess_letter" rows="16"></textarea>
</td>
</tr>

<tr><td>
<a href="javascript:void(null)" onclick="javascript:sendRequest('ajax_send_letter.php?mess_letter='+document.form.mess_letter.value, 'result', getRequest);">Отправить письмо</a>
</td></tr>
</table>

<div id="result"></div>

</form>

</body>
</html>






ajax.js



var httpRequest = createHttpRequest();
var resultId = '';


function sendRequest(file, _resultId, getRequestProc) {
resultId = _resultId;
document.getElementById(resultId).innerHTML = 'Loading... <img src="loading.gif">';
httpRequest.open('get', file);
httpRequest.onreadystatechange = getRequestProc;
httpRequest.send(null);
}


function getRequest() {
if (httpRequest.readyState == 4) {
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}
}


function createHttpRequest()
{
    if (window.XMLHttpRequest) {
        try {
            return new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
          try {
              return new ActiveXObject('Microsoft.XMLHTTP');
          } catch (e){}
        }
    }
    return null;
}






ajax_send_letter.php




<? 
header
('Content-type: text/html; charset=Windows-1251');
$_REQUEST[mess_letter]=nl2br($_REQUEST[mess_letter]);
echo 
$_REQUEST[mess_letter];
?>




Вот полный пример аякса...
Когда заполняю поле textarea - в файл все передается в одну строчку....
Помогите!!! Плиз... ).

  Ответить  
 
 автор: Николай2357   (22.03.2009 в 09:21)   письмо автору
 
   для: Jaroslav   (21.03.2009 в 10:46)
 

Там у Вас еще со спецсимволами проблема будет. Вот рабочий вариант, правда я его малеько перекроил на свой лад, необессудьте.
<script type="text/javascript" language="javascript">


var httpRequest = createHttpRequest(); 
var resultId = ''; 

function createHttpRequest() 

    if (window.XMLHttpRequest) { 
        try { 
            return new XMLHttpRequest(); 
        } catch (e){} 
    } else if (window.ActiveXObject) { 
        try { 
            return new ActiveXObject('Msxml2.XMLHTTP'); 
        } catch (e){ 
          try { 
              return new ActiveXObject('Microsoft.XMLHTTP'); 
          } catch (e){} 
        } 
    } 
    return null; 
}

function sendRequest() { 
var q = document.getElementById('mess_letter').value;
var qt = 'mess_letter='+encodeURIComponent(q);
document.getElementById('result').innerHTML = 'Loading... <img src="loading.gif">'; 
httpRequest.open('post', 'ajax_send_letter.php', true); 
httpRequest.onreadystatechange = getRequestProc; 
httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
httpRequest.send(qt); 



function getRequestProc() { 
if (httpRequest.readyState == 4)  
document.getElementById('result').innerHTML = httpRequest.responseText; 
 

</script>


<tr><td> 
Текст сообщения<br> 
<textarea  id="mess_letter" rows="16"></textarea> 
</td>


<a href="javascript:void(null)" onclick="javascript:sendRequest();">Отправить письмо</a>


Аякс не любит виндовских кодировок, делайте сразу в utf-8, что бы не конвертировать потом.

  Ответить  
 
 автор: Jaroslav   (22.03.2009 в 21:29)   письмо автору
 
   для: Николай2357   (22.03.2009 в 09:21)
 

Большое спасибо.
Вроде, то, что надо :)

  Ответить  
 
 автор: Jaroslav   (26.03.2009 в 21:03)   письмо автору
 
   для: Николай2357   (22.03.2009 в 09:21)
 

Подскажите, пожалуйста, как можно доработать данный скрипт, чтобы кроме текстового поля можно было загружать файл на аяксе?

  Ответить  
 
 автор: Zend72   (26.03.2009 в 21:19)   письмо автору
 
   для: Jaroslav   (26.03.2009 в 21:03)
 

Одна из функций Закачка файлов (upload) из браузера на сервер без перезагрузки страницы.

PS
Пример в действии

  Ответить  
 
 автор: Jaroslav   (26.03.2009 в 23:22)   письмо автору
 
   для: Zend72   (26.03.2009 в 21:19)
 

не могу придумать, что надо изменить в этом скрипте, чтобы на странице было несколько форм для отправки файлов... (

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования