• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
jquery و مشکل در ارسال فرم بدون رفرش
#1
با سلام،

من یک فرم دارم که حاوی چند 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 بشه اول بعد آرایه رو یه کاریش می کنم
  پاسخ
تشکر شده توسط :
#2
کد پی‌اچ‌پی:
function postNewsSub(){
    $(
"form#newsEditForm").submit(function() {

        var 
subject    = $('#newsSubject').val();
        
            $.
ajax({
                
type"POST",
                
url"call.set.php",
                
data: $('#newsEditForm').serialize( ),
                
success: function(){
                $(
'.widget-editbox').slideUp("slow");
                $(
'#allNews').load("call.set.php");
                }
            });
            
        return 
false;    
        });


  پاسخ
تشکر شده توسط : admin oia molana
#3
این راه که شما رو دکمه ی Submit یه onClick گذاشتی درست نیست. باید در فرمت اینو بزاری :
کد:
<form action="javascript:postNewsSub();">
و برای jQuery هم، اینطوری می شه:
کد:
function postNewsSub() {
                $.ajax({
                type: "POST",
                url: "call.set.php",
                data: $('#newsEditForm').serialize( ),
                success: function(){
                $('.widget-editbox').slideUp("slow");
                $('#allNews').load("call.set.php");
                }
                });
}}
  پاسخ
تشکر شده توسط : oia
#4
دوست عزیز اگر دقت کنید من با رخداد submit روی فرم مورد نظر قرار دادم پس نیازی به قرار دادن هیچ گونه کدی یا فراخوانی تابعی در اکشن فرم نیست.
درضمن فکر نمی کنم در پارامتر اکشن فرم جاوا اسکریپت رو در تمامی مرورگر ها قبول کنه واسه این کار تگ فرم خودش پارامتر رخداد onsubmite داره
  پاسخ
تشکر شده توسط :
#5
(۱۳۸۸ خرداد ۲۰, ۰۹:۰۲ ب.ظ)zoghal نوشته: دوست عزیز اگر دقت کنید من با رخداد submit روی فرم مورد نظر قرار دادم پس نیازی به قرار دادن هیچ گونه کدی یا فراخوانی تابعی در اکشن فرم نیست.
درضمن فکر نمی کنم در پارامتر اکشن فرم جاوا اسکریپت رو در تمامی مرورگر ها قبول کنه واسه این کار تگ فرم خودش پارامتر رخداد onsubmite داره

صالح یه پای JqUERYه Wink
  پاسخ
تشکر شده توسط :
#6
فعلاً که کار می کنه... خب شما onSubmit یا onClick بزارید حالا چه فرقی داره!
  پاسخ
تشکر شده توسط :
#7
onSubmit زمانی که فروم submit میشه، و این خاصیت رو فرم هست
onClick زمانی هست که روی تگ کلیک میشه . و این خاصیت روی فروم نیست و باید روی سایر تک ها قرار بدید که این خاصیت رو دارند

کلیت باهم فرق دارند، ممکنه در این مورد عمل یکی باشه
  پاسخ
تشکر شده توسط : oia
#8
خودم تعریف هاشو می دونم، فقط گفتم با هر کدوم از اینها می شه! حالا یکی با onClick درست می کنه یا یکی با onSubmit، ولی با همین action هم کار می کنه!
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان