Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> СИМВОЛ '=' пропадает, ajax 
V
    Опции темы
regret
Дата 23.3.2008, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 19.5.2006

Репутация: нет
Всего: нет



   

СИМВОЛ = пропадает и за ним весь текст тоже, анпример ввели "ляля=куку" останется- "ляля"

в чём ошибка подскажите?


Код


<script language="javascript" type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript">
function send_comment(){

var frm = document.comment;
var tid = '';
var text = '';

for (var i=0;i < frm.elements.length;i++) {
var elmnt = frm.elements[i];
if (elmnt.type.toLowerCase() == "submit") elmnt.disabled=true;
if (elmnt.type == "text" || elmnt.type == "password" || elmnt.type == "textarea") {
text = elmnt.value;
tid = <?=$id?>;
}
}

var ajax = new tbdev_ajax();
ajax.onShow ('');
var varsString = "";
ajax.requestFile = "takecomment.php";
ajax.setVar("tid", tid);
ajax.setVar("text", text);
ajax.method = 'POST';
ajax.element = 'ajax_c';
ajax.sendAJAX(varsString);
}
</script>
<div id="loading-layer" style="display:none;font-family: Verdana;font-size: 11px;width:200px;height:50px;background:#FFF;padding:10px;text-align:center;border:1px solid #000">
<div style="font-weight:bold" id="loading-layer-text">Loading. Please, wait...</div><br />
<img src="pic/loading.gif" border="0" />
</div>
<div id="ajax_c"> 

PM MAIL   Вверх
Fortop
Дата 23.3.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(regret @  23.3.2008,  15:29 Найти цитируемый пост)
ajax.setVar("text", text);

Конвертируй или сериализуй text.
Что за глючная реализация ajax? Почему там нет этого?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
regret
Дата 25.3.2008, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 19.5.2006

Репутация: нет
Всего: нет



Цитата(Fortop @ 23.3.2008,  15:58)
Цитата(regret @  23.3.2008,  15:29 Найти цитируемый пост)
ajax.setVar("text", text);

Конвертируй или сериализуй text.
Что за глючная реализация ajax? Почему там нет этого?

ajax.setVar("text", text) - ну да ,  но я прошу дать функцию которая бы както конвертила контент в переменной text , а потом , елси требуется  и обратную ей..
PM MAIL   Вверх
Grig
Дата 25.3.2008, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 6
Всего: 16



а что лежит в файле 
Цитата

js/ajax.js

?


--------------------
        
PM MAIL ICQ   Вверх
Atlete
Дата 25.3.2008, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 15.8.2007

Репутация: нет
Всего: нет



А может самому написать необходимый функционал. Не так ведь и сложно, и пропадать ничего не будет.
Тут есть пример.
Думаю на его основе легко можно сделать свою реализацию.
PM MAIL ICQ   Вверх
Fortop
Дата 25.3.2008, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 2
Всего: 42



Цитата(regret @  25.3.2008,  01:45 Найти цитируемый пост)
ajax.setVar("text", text) - ну да ,  но я прошу дать функцию которая бы както конвертила контент в переменной text , а потом , елси требуется  и обратную ей.

тут все что нужно http://jquery.com

Или действительно пытаться писать все самому.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
ksnk
Дата 25.3.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



можно сделать вот так
ajax.setVar("text", encodeURIComponent(text))
но так делать должна сама функция setVar у себя внутри. Если она не делает даже таких элементарных вещей, то стоит расчитывать на наличие уже не столь тривиальных глюков...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
regret
Дата 25.3.2008, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 19.5.2006

Репутация: нет
Всего: нет



Цитата(Grig @ 25.3.2008,  03:18)
а что лежит в файле 
Цитата

js/ajax.js

?



Код


function _get_obj_toppos(obj)
{
var top = obj.offsetTop;
while( (obj = obj.offsetParent) != null )
{
top += obj.offsetTop;
}
return top;
}
function center_div()
{
this.divname = '';
this.divobj  = '';
}
center_div.prototype.clear_div = function()
{
try
{
if ( ! this.divobj )
{
return;
}
else
{
this.divobj.style.display  = 'none';
}
}
catch(e)
{
return;
}
}
center_div.prototype.Ywindow = function()
{
var scrollY = 0;
if ( document.documentElement && document.documentElement.scrollTop )
{
scrollY = document.documentElement.scrollTop;
}
else if ( document.body && document.body.scrollTop )
{
scrollY = document.body.scrollTop;
}
else if ( window.pageYOffset )
{
scrollY = window.pageYOffset;
}
else if ( window.scrollY )
{
scrollY = window.scrollY;
}
return scrollY;
}
center_div.prototype.move_div = function()
{
try
{
this.divobj = document.getElementById( this.divname );
}
catch(e)
{
return;
}
// Figure width and height
var my_width  = 0;
var my_height = 0;
if ( typeof( window.innerWidth ) == 'number' )
{
my_width  = window.innerWidth;
my_height = window.innerHeight;
}
else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
{
my_width  = document.documentElement.clientWidth;
my_height = document.documentElement.clientHeight;
}
else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
{
my_width  = document.body.clientWidth;
my_height = document.body.clientHeight;
}
this.divobj.style.position = 'absolute';
this.divobj.style.display  = 'block';
this.divobj.style.zIndex   = 99;
var divheight = parseInt( this.divobj.style.Height );
var divwidth  = parseInt( this.divobj.style.Width );
divheight = divheight ? divheight : 50;
divwidth  = divwidth  ? divwidth  : 200;
var scrolly = this.Ywindow();
var setX = ( my_width  - divwidth  ) / 2;
var setY = ( my_height - divheight ) / 2 + scrolly;
setX = ( setX < 0 ) ? 0 : setX;
setY = ( setY < 0 ) ? 0 : setY;
this.divobj.style.left = setX + "px";
this.divobj.style.top  = setY + "px";
}
function tbdev_ajax(file){
this.AjaxFailedAlert = "Ваш браузер не поддерживает расширенные возможности управления сайтом, мы настоятельно рекомендуем сменить браузер.\n";
this.requestFile = file;
this.method = "POST";
this.URLString = "";
this.encodeURIString = true;
this.execute = false;
this.loading_fired        = 0;
this.centerdiv          = null;
this.onLoading = function() { };
this.onLoaded = function() { };
this.onInteractive = function() { };
this.onCompletion = function() { };
this.onShow = function( message )
{
if ( ! this.loading_fired )
{
this.loading_fired = 1;
// Change text?
if ( message )
{
document.getElementById( 'loading-layer-text' ).innerHTML = message;
}
this.centerdiv         = new center_div();
this.centerdiv.divname = 'loading-layer';
this.centerdiv.move_div();
}
return;
};
this.onHide = function()
{
try
{
if ( this.centerdiv && this.centerdiv.divobj )
{
this.centerdiv.clear_div();
}
}
catch(e)
{
}
this.loading_fired = 0;
return;
};
this.createAJAX = function() {
try {
this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (err) {
this.xmlhttp = null;
}
}
if(!this.xmlhttp && typeof XMLHttpRequest != "undefined")
this.xmlhttp = new XMLHttpRequest();
if (!this.xmlhttp){
this.failed = true;
}
};
this.setVar = function(name, value){
if (this.URLString.length < 3){
this.URLString = name + "=" + value;
} else {
this.URLString += "&" + name + "=" + value;
}
}
this.encVar = function(name, value){
var varString = encodeURIComponent(name) + "=" + encodeURIComponent(value);
return varString;
}
this.encodeURLString = function(string){
varArray = string.split('&');
for (i = 0; i < varArray.length; i++){
urlVars = varArray[i].split('=');
if (urlVars[0].indexOf('amp;') != -1){
urlVars[0] = urlVars[0].substring(4);
}
varArray[i] = this.encVar(urlVars[0],urlVars[1]);
}
return varArray.join('&');
}
this.encodeVAR = function(url){
url = url.toString();
var regcheck = url.match(/[\x90-\xFF]/g);
if ( regcheck )
{
for (var i = 0; i < i.length; i++)
{
url = url.replace(regcheck[i], '%u00' + (regcheck[i].charCodeAt(0) & 0xFF).toString(16).toUpperCase());
}
}
return escape(url).replace(/\+/g, "%2B");
}
this.runResponse = function(){
eval(this.response);
}
this.sendAJAX = function(urlstring){
this.responseStatus = new Array(2);
if(this.failed && this.AjaxFailedAlert){
alert(this.AjaxFailedAlert);
} else {
if (urlstring){
if (this.URLString.length){
this.URLString = this.URLString + "&" + urlstring;
} else {
this.URLString = urlstring;
}
}
if (this.encodeURIString){
var timeval = new Date().getTime();
this.URLString = this.encodeURLString(this.URLString);
//this.setVar("rndval", timeval);
}
if (this.element) { this.elementObj = document.getElementById(this.element); }
if (this.xmlhttp) {
var self = this;
if (this.method == "GET") {
var totalurlstring = this.requestFile + "?" + this.URLString;
this.xmlhttp.open(this.method, totalurlstring, true);
} else {
this.xmlhttp.open(this.method, this.requestFile, true);
}
if (this.method == "POST"){
try {
this.xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
} catch (e) {}
}
this.xmlhttp.send(this.URLString);
this.xmlhttp.onreadystatechange = function() {
switch (self.xmlhttp.readyState){
case 1:
self.onLoading();
break;
case 2:
self.onLoaded();
break;
case 3:
self.onInteractive();
break;
case 4:
self.response = self.xmlhttp.responseText;
self.responseXML = self.xmlhttp.responseXML;
self.responseStatus[0] = self.xmlhttp.status;
self.responseStatus[1] = self.xmlhttp.statusText;
self.onCompletion();
if(self.execute){ self.runResponse(); }
if (self.elementObj) {
var elemNodeName = self.elementObj.nodeName;
elemNodeName.toLowerCase();
self.onHide();
if (elemNodeName == "input" || elemNodeName == "select" || elemNodeName == "option" || elemNodeName == "textarea"){
if (self.response == 'error') { alert('Доступ отклонен'); } else {
self.elementObj.value = self.response;
}
} else {
if (self.response == 'error') { alert('Доступ отклонен'); } else {
self.elementObj.innerHTML = self.response;
}
}
}
self.URLString = "";
break;
}
};
}
}
};
this.createAJAX();
}


Добавлено через 1 минуту и 58 секунд
Цитата(Atlete @ 25.3.2008,  10:14)
А может самому написать необходимый функционал. Не так ведь и сложно, и пропадать ничего не будет.
Тут есть пример.
Думаю на его основе легко можно сделать свою реализацию.



с  escape() в ajax   а дальше в PHP=- urldecode()

русский нормально не декодируется

Добавлено через 6 минут и 25 секунд
Цитата(ksnk @ 25.3.2008,  15:30)
можно сделать вот так
ajax.setVar("text", encodeURIComponent(text))
но так делать должна сама функция setVar у себя внутри. Если она не делает даже таких элементарных вещей, то стоит расчитывать на наличие уже не столь тривиальных глюков...

твой вариант подошёл, если юзать- декод в пшп такой-

 trim(iconv("UTF-8", "windows-1251", urldecode($_POST["text"])));


Это сообщение отредактировал(а) regret - 25.3.2008, 22:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.