JQuery Serile çalışmıyor

5 Cevap php

Basit bir form var (sadece burada alanları ayıklamak) ama nedense JQserilization çalışmıyor; Uyarıda iyi görünüyor () ama sadece ilk form alanı mesajları alır. Öneriler - lütfen şimdiden teşekkürler

Form:

<form id="neweventform" method="post" action="">
<div class="grid_4 alpha">Setup date *</div>
<div class="grid_7 omega">
<select name="setup_day" id="setup_day"><?php days_list(); ?></select>
<select name="setup_month" id="setup_month"><?php month_list(); ?></select>
<select name="setup_year" id="setup_year"><?php year_list(); ?></select> 
<div class="grid_11">
<input type="submit" name="createevent" value="Create" id="createevent" />
</div>
</form>

JQuery

$j(document).ready(function(){
$j('#neweventform').live('submit',function () {
var data= $j('#neweventform').serialize();
alert(data);
$j.ajax({type: "POST", url: "scripts/process.php",data: "newevent=newevent&event_options=" + data, cache: false, complete: function(data){ 
$j('#neweventform').fadeOut(2000),loading.fadeOut('slow'),$j('#content').fadeIn(2000), $j('#content').load('scripts/events.php #eventslist'); 
}
});
return false;
});
});

Ve PHP işleme

if(isset($_POST['newevent'])) :
$insert = mysql_query("INSERT INTO events (event_options) VALUES ('".$_POST['event_options']."')");
endif;

Herhangi bir öneriniz?

5 Cevap

Tamam, bir karışımını çalıştı, ama sonunda işe aldım:

$j(document).ready(function(){
    $j('#neweventform').live('submit',function () {
        var optdata= $j('#neweventform').serialize();
        $j.ajax({
            type: "POST", 
            url: "scripts/process.php",
        data: "newevent=" + $j('#neweventform').serialize(),
        cache: false, 
            complete: function(data) { 
                $j('#neweventform').fadeOut(2000),
            loading.fadeOut('slow'),
            $j('#content').fadeIn(2000), 
            $j('#content').load('scripts/events.php #eventslist'); 
            }
        });
        return false;
   });

});

Daha sonra PHP

if(isset($_POST['newevent'])) :
    $tryit  = serialize($_POST);
    $insert = mysql_query("INSERT INTO events (event_options) VALUES ('".$tryit."')");
endif;

ilk. Bir basit yapıyor deneyin

<?php

print_r($_POST);

?>

ne sonrası var üzerinde alıyorsanız görmek için.

Ikinci. Lütfen parametre yeniden adlandırın

var data

daha "özel" bir şey

Eğer arama yapmak için ama en azından buradan hata ayıklama başlayabilirsiniz kullanılan "data" sembolü ile bir çakışma olabilir eğer ben şu anda hatırlamıyorum.

Sizin veriler bu gibi bir şey içine tefrika olacak:

setup_day=1&setup_month=2&setup_year=2010

Daha sonra bu gibi veri oluşturmak:

newevent=newevent&event_options=setup_day=1&setup_month=2&setup_year=2010

Bu sorgu dizesi (bir '&' olmadan iki '=') yanlış olduğunu ve sorunun muhtemelen bu kök.

Bu deneyin:

$j.ajax({
    type: "POST", 
    url: "scripts/process.php",
    data: { newevent: newevent, event_options: $j('#neweventform').serialize() },
    cache: false, 
    complete: function(data) { 
        ...
    }
});