Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα,

 

Έχω αυτό τον κώδικα

$(document).ready(function(){
                $('.formdate input[type="checkbox"]').change(function(){
                      var form = document.formdate;
                      var check_pro = $(form).serialize();
                      $.ajax({
                           data: check_pro,
                           type: 'POST',
                           async: true,
                           url: "SendDateSystem.php",
                           beforeSend: function(){ },
                           success: function ( dataBack ){  },
                           complete: function(){ }
                      });
                      return false;
                });
}); 

Το .fordate είναι ένα id ενός div όπου μέσα εκεί έχω έναν πίνακα που τον γεμίζω έτσι:

 <td valign="top" align="center"><?php echo "<input type='checkbox' name='check_pro[]' class='check' value='".$arrayidpro[$i]."'>"; ?></td>

Το πρόβλημα μου είναι ότι παίρνω άδεια δεδομένα γιατί συμβαίνει αυτό;

 

Ευχαριστώ.

Δημοσ.

Λάθος δικό μου τυπογραφικό....έτσι το έχω όπως λες, αλλά ακόμα τίποτα....

 

Επίσης έχω αυτό echo $_POST['check_pro']; και μου βγάζει Undefined index: check_pro  :unsure: 

Δημοσ.

Τι θέλεις να πάρεις? για κάθε checkbox, αν είναι checked θα πάρεις ότι έχει οριστεί σαν value  κάπως έτσι (μια και ήδη χρησιμοποιείς jQuery):

$('input[name="check_pro[]"]').serialize()

όπου το $_POST['check_pro'] θα είναι NULL ή array με τις τιμές των input:checked.

  • Like 1
Δημοσ.

https://api.jquery.com/serialize/

 

Encode a set of form elements as a string for submission.

 

Χρησιμοποιείς λάθος την serialize.

var form = document.formdate;
var check_pro = $(form).serialize();

To document.formdate είναι ένα div για δοκίμασε αντι για το div να κάνεις το εξής.

<form id="formdate">
 [Βάλε εδώ το table σου με τα input fields σου]
</form>

και άλλαξε και τον js κώδικα σου ως εξής:

$(document).ready(function(){
                $('input[type="checkbox"]').change(function(){
                      var check_pro = $('#formdate').serialize();
                      $.ajax({
                           data: check_pro,
                           type: 'POST',
                           async: true,
                           url: "SendDateSystem.php",
                           beforeSend: function(){ },
                           success: function ( dataBack ){  },
                           complete: function(){ }
                      });
                      return false;
                });
});
Δημοσ.

Ωραία παιδιά ευχαριστώ μια χαρά.

 

Αλλά επειδή θα σπάσω το κεφάλι μου σε κάτι σχεδόν ίδιο γιατί μου τυπώνει ότι το $_POST είναι null και το αρχείο το διαβάζει μια χαρά.

$('.dateSend input[type="text"]').change(function(){
                        //var date = $(form).serialize();
                        //var dateStar = $(form).serialize();

                        var dateEnd = $('#example2').val();
                        var dateStar = $('#example1').val(); //αυτά έχουν τιμή τα τύπωσα κανονικά

                         var dataDate = dateStar+"-"+dateEnd;

                          $.ajax({
                             data: dataDate,
                             type: 'POST',
                             async: true,
                             url: "SendDateSystem.php",
                             beforeSend: function(){ 
                             },
                             success: function ( dataBack ){
                              },
                             complete: function(){ 

                            }
                        });
                      return false;
                });

Τι μπορεί να φταίει;

Δημοσ. (επεξεργασμένο)

Firefox Δεξί click στην σελίδα Inspect element και πήγαινε στο Network. Άλλαξε το κείμενο στο textfield και δες όταν κάνει το post στην

SendDateSystem.php τα Params για το συγκεκριμένο request.

 

Στον chrome δες τα developer tools (Ctrl+Shift+I).

 

 

 

 

Αν θες έτοιμη λύση χωρίς να το ψάξεις λίγο το πρόβλημα σου είναι ότι το παρακάτω στο ajax call σου

data: dataDate,

έχει σαν αποτέλεσμα μια παράμετρο example1-example2:"" που δεν είναι το σωστό υποθέτω

 

Άλλαξε το παραπάνω με το

data: {data:dataDate},

Η παράμετρος θα είναι σαν data:"example1-example2" οπότε με $_POST["data"] λογικά θα έχει τιμή μετά

 

 

 

Επεξ/σία από nucleus
Δημοσ.

Τι μπορεί να φταίει;

 

Ότι βάζεις δεδομένα "ο,τι να'ναι" στο HTTP request. Δηλαδή έστω ότι το dataDate καταλήγει να είναι "mpourmpoutsaulos-autokrator". Τι υποτίθεται ότι περιμένεις να δεις μέσα στη $_POST μετά απ' αυτό;

 

Το σωστό θα ήταν κάτι του στυλ

data: { dateStart: $('#example1').val(), dateEnd: $('#example2').val() }

ή ακόμα καλύτερα

data: $("#example1, #example2").serialize()

αλλά και πάλι γιατί παιδεύεσαι να τα κάνεις όλα manually αντί να κάνεις ένα απλό $form.submit()?

Δημοσ.

Περίεργα πράγματα...

 $.ajax({
            data: { dateStart: $('#example1').val(), dateEnd: $('#example2').val() },
                             type: 'POST',
                             async: true,
                             url: "SendDate.php",
                             beforeSend: function(){ 
                             },
                             success: function ( dataBack ){
                              },
                             complete: function(){ 

                            }
                        });

Επιμένει να τυπώνει ότι είιναι null

if(!empty($_POST['dateStart']) && !empty($_POST['dateEnd'])){ }

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...