PDA

View Full Version : sending larg data with XMLHttpRequest



شیرین احمدی
چهارشنبه 24 مهر 1392, 23:29 عصر
سلام
آیا XMLHttpRequest امکان ارسال دادی بزرگ رو داره؟


function AjaxRqust()
{
var ajaxRequest='';
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
}catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
return ajaxRequest;
}
function InsertHadis_Fn(){
var ajaxRequest; // The variable that makes Ajax possible!
ajaxRequest=AjaxRqust();

// Create a function that will receive data
// sent from the server and will update
// div section in the same page.
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
// Now get the value from user and pass it to server script.
var TXTname = $('#TXTname').val();
var TXTDate = $('#TXTDate').val();
var TXTfile = $('#TXTfile').val();
var Content = tinyMCE.get('Cntent').getContent();

var queryString = "TXTname=" + TXTname ;
queryString += "&Content=" + Content;
queryString += "&TXTDate=" + TXTDate;
queryString += "&TXTfile=" + TXTfile;

ajaxRequest.open("POST", "PHP/ADD/insert_Hadis.php" , true);
ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajaxRequest.send(queryString);
}

این کدها محتوای tinymcse رو وقتی زیاد باشه کامل ذخیره نمی کنه ، نصفشو در db ذخیره می کنه
کسی از دوستان می دونه مشکلش چیه ؟
حداکثر داده ای که می تونه post کنه چقدر هست؟

s.hoseinpoor
چهارشنبه 24 مهر 1392, 23:41 عصر
حدس میزنم چون محتوای ویرایشگر شامل کدای html میشه و حتما جایی از " استفاده میشه برا همین کوئری استرینگ شما در بهش Content تا جایی که اولین " مشاهده میشه رو وارد میکنه.یعنی رشته اونجا قطع میشه

شیرین احمدی
پنج شنبه 25 مهر 1392, 12:03 عصر
فکر میکنم حدستون درست باشه ولی کاراکتر خاصی رو پیدا نکردم که به اون حساس باشه ، چون متن های مختلف رو امتحان می کنم ، بعضی ها رو فقط یک جمله ، بعضی ها رو یک صفحه ذخیره می کنه .
کاراکتر " رو هم ندارن .
راه حل چیه ؟
مرسی

s.hoseinpoor
پنج شنبه 25 مهر 1392, 14:34 عصر
1-بعد پست کردن صفحه کوئری استرینگ دریافتی رو بررسی کنین.
2-در قسمت درج اطلاعات در دینابیس از پارامتر استفاده کنید
احتمالا حل بشه.

شیرین احمدی
جمعه 26 مهر 1392, 00:50 صبح
<!-- Include Database connections info. -->
<?php require_once('../mainFunctions.php'); ?>

<!-- Verify if user exists for login -->
<?php

if(isset($_POST['Picname']) || isset($_POST['Content'])){

$PicName= $_POST['Picname'];
$Content= $_POST['Content'];
$QueryString = "select max(IDbiography) as max from tbl_biography ";
$Rst=ExecuteQuery($QueryString);
if (!$Rst) die("خطا وجود دارد");
$row=mysqli_fetch_array($Rst);
$max=$row['max'];
$max=$max+1;
$insertSite_sql = "INSERT INTO tbl_biography VALUES('$max', '$PicName', '$Content')";
$insertSite= ExecuteQuery($insertSite_sql) ;
echo "داده های جدید با موفقیت اضافه شد";
}
else {echo 'خطا ! لطفا تمام فیلد ها را پر کنید';}
unset($_POST['Picname']);
unset($_POST['Content']);


کدای قسمت سرور هست . منظوزتون از استفاده ی پارامتر دقیقا چی هست؟
مرسی از توجهتون

s.hoseinpoor
جمعه 26 مهر 1392, 20:17 عصر
کوئری رو به این شکل بنویسید


$query=sprintf("insert into yourtablename values('$max','$PicName','%s')",mysql_real_escape_string($Content));

شیرین احمدی
جمعه 26 مهر 1392, 22:32 عصر
نه متاسفانه این کد جواب نداد .
وقتی متن مورد نظر رو تایپ می کنم کاملا ذخیره می شه ، مشکل وقثی پیش می یاد که از سند ورد کپی می کنم داخل tinymcse .
تا جایی که من بررسی کردم یکی از کاراکتر هایی که مانع ذخیره متن در db می شه zwnj& هست (متن تا قبل این کاراکتر ذخیره می شه ) .
برای حذف این کاراکتر هم روشی پیدا نکردم.