View Full Version : مشکل در ارسال اطلاعات textarea با ajax
Asiandesign
یک شنبه 29 دی 1392, 21:07 عصر
سلام دوستان
من یک ادیتور پیشرفته از سایت http://www.tinymce.com/ دارم
اطلاعاتش رو میخوام با post بفرستم و دریافت کنم با ajax
یعنی اطلاعات فرمی که دارم رو با آژاکس میفرستم همشو میتونم بگیرم جز این تکست آریا خب با value نمیشه - innerHTML نمیشه اطلاعاتشو دریافت کنم . ولی با php با متد post با دستور زیر اطلاعاتشو دارم ولی میخوام با آژاکس بدون رفرش صفحم اطلاعاتمو بفرستم &_POST['textarea']
ممنون میشم کمکم کنید.
engmmrj
یک شنبه 29 دی 1392, 21:09 عصر
لطفا کدتون را در اینجا قرار بدید .
Asiandesign
یک شنبه 29 دی 1392, 21:10 عصر
لطفا کدتون را در اینجا قرار بدید .
</script>
<script type="text/javascript">
//<![CDATA[
var div = 'cont';
var loadingmessage = '<img src="loading.gif" alt="loading" height="16" width="16" /> لطفا کمی صبر کنید...';
function Ajaxrequest(){
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
return xmlHttp;
}
catch (e){
try{
// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
}
catch (e){
alert("مرورگر شما از آژاکس پشتیبانی نمی کند!");
return false;
}
}
}
}
function formget(form, url) {
var poststr = getFormValues(form);
postData(url, poststr);
}
function postData(url, parameters){
var xmlHttp = Ajaxrequest();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){
document.getElementById(div).innerHTML=loadingmess age;
}
if (xmlHttp.readyState == 4) {
document.getElementById(div).innerHTML=xmlHttp.res ponseText;
}
}
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", parameters.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(parameters);
}
function getFormValues(formobj)
{
var str = "";
var valueArr = null;
var val = "";
var cmd = "";
var tmp = $('#ggg :num').fieldValue();
for(var i = 0;i < formobj.elements.length;i++)
{
switch(formobj.elements[i].type)
{
case "text":
str += formobj.elements[i].name +
"=" + encodeURI(formobj.elements[i].value) + "&";
break;
case "textarea":
str += formobj.elements[i].name +
"=" + tmp + "&";
break;
case "select-one":
str += formobj.elements[i].name +
"=" + formobj.elements[i].options[formobj.elements[i].selectedIndex].value + "&";
break;
case "checkbox":
if(formobj.elements[i].checked == true){
str += formobj.elements[i].name +
"=" + formobj.elements[i].value + "&";
}
break;
}
}
str = str.substr(0,(str.length - 1));
return str;
}
//]]>
</script>
به case ها توجه کنید به قسمت textarea و قسمت var tmp که بالای دستور switch قرار داره
Asiandesign
یک شنبه 29 دی 1392, 21:19 عصر
اینم فرم html
<form action="#" method="post" id="ggg">
جدا کننده :<input type="text" name="rpl" id="rpl" value=" ">
تعداد کلمات :<input type="text" name="num" id="num" >
<textarea name="intext" id="intext" class="intext"></textarea>
<input type="button" name="Send" value="ارسال" onclick="formget(this.form, 'func/inform.php');" />
</form>
engmmrj
یک شنبه 29 دی 1392, 21:20 عصر
به شکل زیر عمل کنید
Form.elements["textarea"].value
Asiandesign
یک شنبه 29 دی 1392, 21:38 عصر
نه این شکلی هم نشدش
engmmrj
یک شنبه 29 دی 1392, 23:10 عصر
من تست کردم مشکلی نداشت !
Asiandesign
یک شنبه 29 دی 1392, 23:15 عصر
من تست کردم مشکلی نداشت !
خب میشه کدهای جیکوئری رو بزارید تا ببینمش
Javidhb
یک شنبه 29 دی 1392, 23:20 عصر
وقتی از tinyMCE استفاده میکنید... همه اون تشکیلاتی رو که به صفحه اضافه میکنه، در واقع یک div جدیده و مقداری که تایپ میکنید، وارد textArea نمیشه و درون اون div جدید تایپ میشن.
برای گرفتن مقدار داخل TinyMCE میتونید از ()getContent (http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.getContent) استفاده کنید.
Asiandesign
یک شنبه 29 دی 1392, 23:32 عصر
وقتی از tinyMCE استفاده میکنید... همه اون تشکیلاتی رو که به صفحه اضافه میکنه، در واقع یک div جدیده و مقداری که تایپ میکنید، وارد textArea نمیشه و درون اون div جدید تایپ میشن.
برای گرفتن مقدار داخل TinyMCE میتونید از ()getContent (http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.getContent) استفاده کنید.
ممنون آره کار کردش ولی تو حجم اطلاعات بزرگ که نه یه کد 300 سطری میهنگه ولی در کل کار کرد دست شما درد نکنه. عالی بود
kb0y667
شنبه 05 بهمن 1392, 18:49 عصر
دقت بفرما برای حفظ امنیت و جلوگیری از حملات XXS همه متغییرهای رشته ای قبل از ارسال کد شوند
همانند case خودتون در بخش "text"
فرض کنید یه کاربر توی textarea شما اینطور بنویسه :
1&get2=
Asiandesign
دوشنبه 07 بهمن 1392, 18:16 عصر
دقت بفرما برای حفظ امنیت و جلوگیری از حملات XXS همه متغییرهای رشته ای قبل از ارسال کد شوند
همانند case خودتون در بخش "text"
فرض کنید یه کاربر توی textarea شما اینطور بنویسه :
1&get2=
بله درست میگید - ولی اونو میدونم بحث اصلی یه چیز دیگس
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.