ورود

View Full Version : مشکل در ساخت و ارسال فرم با jquery



comet_62
یک شنبه 27 اردیبهشت 1388, 13:55 عصر
با سلام،

من یک فرم دارم که حاوی چند checkbox است. و به صورت یک آرایه می باشد.
می خواهم بدون refresh شدن فرم ارسال و مقادیر checkbox ها post شود.
کد :html


<form id="newsEditForm" action="" method="post">
<fieldset>
<legend>انتخاب موضوع اخبار</legend>
<ul>

<li><input id="newsSubject[]" name="newsSubject[]" type="checkbox" value="ej" />
<label for="newsSubject[]">اجتماعی</label></li>

<li><input id="newsSubject[]" name="newsSubject[]" type="checkbox" value="sia" />
<label for="newsSubject[]">سیاسی</label></li>
<li><input id="newsSubject[]" name="newsSubject[]" type="checkbox" value="egh" />
<label for="newsSubject[]">اقتصادی</label></li>
</ul><p><input id="editSave" name="editSave" type="submit" onclick="postNewsSub()" value="ذخیره" /></p>
</fieldset>
</form>
کد jquery:


function postNewsSub(){
$("form#newsEditForm").submit(function() {

var subject = $('#newsSubject').val();

$.ajax({
type: "POST",
url: "call.set.php",
data: "getAjaxSubject: subject",
success: function(){
$('.widget-editbox').slideUp("slow");
$('#allNews').load("call.set.php");
}
});

return false;
});

}
و در آخر کد php که همان صفحه call.set.php می باشد:


if (isset ( $_POST ['getAjaxSubject'] )) {
echo ("post is complete");}
اما مشکل:
هیچ چیزی post نشده است! و چیزی چاپ نمی شود.
اگر لطف کنید مشکل کد را برایم بگویید بسیار ممنون خواهم شد.
شاید هم برداشت من از ajax.$ اشتباه است!
راستی حالا فعلا آرایه اش مهم نیست . post بشه اول بعد آرایه رو یه کاریش می کنم

kavoshgar63
یک شنبه 27 اردیبهشت 1388, 22:33 عصر
سلام
اول بگین شما با چه مرورگری کار می کنین؟

sinoohe
دوشنبه 28 اردیبهشت 1388, 08:54 صبح
کد :html


<form id="newsEditForm" action="" method="post">
<fieldset>
<legend>انتخاب موضوع اخبار</legend>
<ul>

<li><input id="newsSubject[]" name="newsSubject[]" type="checkbox" value="ej" />
<label for="newsSubject[]">اجتماعی</label></li>

<li><input id="newsSubject[]" name="newsSubject[]" type="checkbox" value="sia" />
<label for="newsSubject[]">سیاسی</label></li>
<li><input id="newsSubject[]" name="newsSubject[]" type="checkbox" value="egh" />
<label for="newsSubject[]">اقتصادی</label></li>
</ul><p><input id="editSave" name="editSave" type="submit" onclick="postNewsSub()" value="ذخیره" /></p>
</fieldset>
</form>کد jquery:


function postNewsSub(){
$("form#newsEditForm").submit(function() {

var subject = $('#newsSubject').val();

$.ajax({
type: "POST",
url: "call.set.php",
data: "getAjaxSubject: subject",
success: function(){
$('.widget-editbox').slideUp("slow");
$('#allNews').load("call.set.php");
}
});

return false;
});

}
والا برای من کدتون کار کرد . از firebug کمک بگیرید حتما به نتیجه می رسید
در ضمن در قسمت data اشتباه وارد کرده اید. در data باید آبجکت قرار بدهید نه string مثلا به جای data: "getAjaxSubject: subject" این رو بزارید:


data:{getAjaxSubject:subject}

comet_62
دوشنبه 28 اردیبهشت 1388, 11:37 صبح
از راهنمایی تان بسیار ممنون.
درسته ، firebug نشون می ده که انگار داره یه اتفاق هایی می افته!

حالا لطفا دم دست باشید احتمالا بازم سوال خواهم داشت.:خجالت:

comet_62
دوشنبه 28 اردیبهشت 1388, 11:52 صبح
اصلا می دونید من می خوام تو یه div ،زیر فرم ، پیغام echo چاپ بشه. یعنی:
اگه html:

<div id="allNews">
</div>و jquery:

$.ajax({
type: "POST",
url: "call.set.php",
data:{getAjaxSubject:subject},
success: function(){
$('.widget-editbox').slideUp("slow");
$('#allNews').load("call.set.php");
}
});و call.set.php:

if (isset ( $_POST ['getAjaxSubject'] )) {
echo ("Post is Complete!");}تو div ی که select کردم این پیغام چاپ بشه.

با این دستور کار نمی کنه؟

$('#allNews').load("call.set.php");