PDA

View Full Version : مشکل در ارسال آرایه ای از textbox ها با استفاده از آژاکس و تابع json



ghodsana
شنبه 02 فروردین 1393, 14:43 عصر
بسم الله
با سلام و تبریک سال نو
دوستان من یه آرایه از textbox ها رو دارم که بصورت زیر هستش و میخوام اونارو با استفاده از آژاکس و تابع json ارسال و دریافت کنم اما هر کاری میکنم موفق نمیشم




<div id="anbar">
<table class=" table table-bordered table-striped table-hover bg-info">
<tr>
<th>تعداد</th>
<th>سایز</th>
<th>نام کالا</th>
<th>کد کالا</th>
</tr>
<?php for ($i=0 ; $i<=5 ; $i++ ): ?>

<tr>
<td>
<select id="items[<?PHP print $i ?>][tedad]" name="items">
<option>10</option>
<option>20</option>
<option selected>30</option>
<option>40</option>
<option>50</option>
<option>60</option>
<option>70</option>
</select>
</td>
<td><input id="items[<?PHP print $i ?>][size]" name="items"></td>
<td><input id="items[<?PHP print $i ?>][name]" name="items"></td>
<td><input id="items[<?PHP print $i ?>][code]" name="items"></td>
</tr>
<?php endfor; ?>


</table>

<table class="table">
<tr><td colspan="4"><input type="submit" class="btn btn-success" value="ثبت" style="width: 80px;"
onclick="register_kala()"> </td></tr>

</table>
</div>



این هم کد آژآکس من هستش که کار نمیکنه و نمیتونم در صفحه ی reg-kala.php مقداری رو دریافت کنم




function register_kala()
{
var xmlhttp = false;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlhttp = false;
}
}
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
alert(xmlhttp.responseText);
};
xmlhttp.open("POST","reg-kala.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("item=" +JSON.stringify(items.val()));
}






ممنون میشم اگه دوستی کامل پاسخم رو بدن

p30online
شنبه 02 فروردین 1393, 16:12 عصر
دوست خوب من با استفاده از این کد داده ها را ذخیره می کنم با استفاده از آژاکس


این فرم من:



<form class="form-horizontal" method="" action="">
<div class="control-group warning">
<label class="control-label" for="inputWarning">عنوان لینک</label>
<div class="controls">
<input type="text" id="better_title" name="better_title">
</div>
</div>
<div class="control-group warning">
<label class="control-label" for="inputWarning">آدرس لینک</label>
<div class="controls">
<input type="text" id="better_address" name="better_address">
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary betterlinks">ثبت</button>
<button type="reset" class="btn">انصراف</button>
<div class="container">
<div class="main">
</div>
<div class="space"></div>
<div id="better_flash"></div>
<div id="better_show"></div>
</div>
</div>

</form>

این هم سورس آژاکس من:


// JavaScript Document
// JavaScript links bartar Document

$(function() {
$(".betterlinks").click(function() {
var textcontent = $("#better_title").val();
var textcontent2 = $("#better_address").val();

var datas = { better_title: $("#better_title").val(),
better_address: $("#better_address").val() };

var dataString = 'better_title='+ textcontent;
var dataString2 = 'better_address='+ textcontent2;

if(textcontent =='')
{
alert("اطلاعات را کامل وارد کنید...");
$("#better_title").focus();
}
else
{
$("#better_flash").show();
$("#better_flash").fadeIn(400).html('<span class="load"><img src="../../../../admin/admin/js/withoutrefresh/img/ajax-loaders/ajax-loader-7.gif"></span>');
$.ajax({
type: "POST",
url: "action.php",
data:datas,
cache: true,
success: function(html){
$("#better_show").after(html);
document.getElementById('better_title').value='';
document.getElementById('better_address').value='' ;
$("#better_flash").hide();
$("#better_title").focus();
}
});
}
return false;
});
});



این دو تا فایل هم اول فایلت بگذار



<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

ghodsana
شنبه 02 فروردین 1393, 20:28 عصر
دوست خوب من با استفاده از این کد داده ها را ذخیره می کنم با استفاده از آژاکس


این فرم من:



<form class="form-horizontal" method="" action="">
<div class="control-group warning">
<label class="control-label" for="inputWarning">عنوان لینک</label>
<div class="controls">
<input type="text" id="better_title" name="better_title">
</div>
</div>
<div class="control-group warning">
<label class="control-label" for="inputWarning">آدرس لینک</label>
<div class="controls">
<input type="text" id="better_address" name="better_address">
</div>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary betterlinks">ثبت</button>
<button type="reset" class="btn">انصراف</button>
<div class="container">
<div class="main">
</div>
<div class="space"></div>
<div id="better_flash"></div>
<div id="better_show"></div>
</div>
</div>

</form>

این هم سورس آژاکس من:


// JavaScript Document
// JavaScript links bartar Document

$(function() {
$(".betterlinks").click(function() {
var textcontent = $("#better_title").val();
var textcontent2 = $("#better_address").val();

var datas = { better_title: $("#better_title").val(),
better_address: $("#better_address").val() };

var dataString = 'better_title='+ textcontent;
var dataString2 = 'better_address='+ textcontent2;

if(textcontent =='')
{
alert("اطلاعات را کامل وارد کنید...");
$("#better_title").focus();
}
else
{
$("#better_flash").show();
$("#better_flash").fadeIn(400).html('<span class="load"><img src="../../../../admin/admin/js/withoutrefresh/img/ajax-loaders/ajax-loader-7.gif"></span>');
$.ajax({
type: "POST",
url: "action.php",
data:datas,
cache: true,
success: function(html){
$("#better_show").after(html);
document.getElementById('better_title').value='';
document.getElementById('better_address').value='' ;
$("#better_flash").hide();
$("#better_title").focus();
}
});
}
return false;
});
});



این دو تا فایل هم اول فایلت بگذار



<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>








سلام
خیلی ممنونم از وقتی که گذاشتید و پاسخی که دادید اما من میخواستم ایراد کد خودم رو بفهمم و برطرفش کنم
ممنون میشم اگه این کار رو برام انجام بدید

id1385
شنبه 02 فروردین 1393, 22:49 عصر
اول از همه باید ببینی که اصلاً فایلی که میخواهی بهش مقادیرو پست کنی رو درست آدرس دهی کردی یا نه ؟
به احتمال زیاد شما تو اون قسمت مشکل داری reg-kala.php
بعدشم وقتی جیکوئری هست چرا از خودتو تو دردسر میندازی؟ هم سرعتش بالاست و هم کدنویسیش راحت تره.

اینم یه نمونه
http://barnamenevis.org/showthread.php?362761-%D9%86%D9%85%D9%88%D9%86%D9%87-%DA%A9%D8%A7%D9%85%D9%84-%D8%AB%D8%A8%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%D8%8C-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%88-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-jquery-%D9%88-php&p=1601355&viewfull=1#post1601355


موفق باشید

ghodsana
یک شنبه 03 فروردین 1393, 00:07 صبح
اول از همه باید ببینی که اصلاً فایلی که میخواهی بهش مقادیرو پست کنی رو درست آدرس دهی کردی یا نه ؟
به احتمال زیاد شما تو اون قسمت مشکل داری reg-kala.php
بعدشم وقتی جیکوئری هست چرا از خودتو تو دردسر میندازی؟ هم سرعتش بالاست و هم کدنویسیش راحت تره.

اینم یه نمونه
http://barnamenevis.org/showthread.php?362761-%D9%86%D9%85%D9%88%D9%86%D9%87-%DA%A9%D8%A7%D9%85%D9%84-%D8%AB%D8%A8%D8%AA-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%D8%8C-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%88-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-jquery-%D9%88-php&p=1601355&viewfull=1#post1601355


موفق باشید


سلام
ممنونم از وقتی که گذاشتید
بله میدونم که با jquery راحت تره اما همونطور که در بالا هم گفتم من میخوام ایراد کد خودم رو بفهمم و برطرفش کنم
در مورد آدرس دهی هم به صفحه ی reg-kala.php تست کردم درست هستش

ghodsana
یک شنبه 03 فروردین 1393, 01:21 صبح
دوستان من خودم بالاخره تونستم مشکل رو حل کنم و تابع آژاکسم رو به این شکل تغییر دادم و تونستم مقادیر رو در صفحه ی reg-kala دریافت کنم




function register_kala()
{
var xmlhttp = false;
var items_tedad=new Array();
var items_size=new Array();
var items_name=new Array();
var items_code=new Array();

for (i=0; i<=5; i++)
{
items_tedad[i]=document.getElementById("items["+i+"][tedad]").value;
items_size[i]=document.getElementById("items["+i+"][size]").value;
items_name[i]=document.getElementById("items["+i+"][name]").value;
items_code[i]=document.getElementById("items["+i+"][code]").value;

}

if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlhttp = false;
}
}
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
document.getElementById("content").innerHTML=xmlhttp.responseText;

};

xmlhttp.open("POST","reg-kala.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("tedad=" + JSON.stringify(items_tedad) + "& size=" + JSON.stringify(items_size)
+ "& name=" + JSON.stringify(items_name) + "& code=" + JSON.stringify(items_code) );

}