Lykos22 Δημοσ. 18 Φεβρουαρίου 2015 Δημοσ. 18 Φεβρουαρίου 2015 Θα ήθελα μία βοηθεία αν γίνεται ώστε να υλοποιήσω ένα task.Έχω τους εξής πίνακες Actors id (pk) name dob Movies id (pk) title runtime // Σχετίσμός ταινίων - ηθοποιών, δηλ. ποιοι ηθοποιοι παίζουν σε ποιες ταινίες // και ποιον ρόλο υποδύονται Casts id (pk) movie_id actor_id character για να κάνω λοιπόν τις συδέσεις μεταξύ ταινιών - ηθοποιών σκέφτηκα να το υλοποιήσω όπως φαίνεται στην εικόνα που έχω επισυναψει. Δηλαδή όταν πατάω το κουμπί "Add Actor" με jquery κάνω append στη φόρμα μου και προσθέτω τα πεδία από κάτω ώστε να μπορώ να πληκτρολογίσω το όνομα του ηθοποιού και το ρόλο που υποδύεται. Εδώ είναι τα βασικά κομμάτια του κώδικά μου. // το δημιούργησα προσωρινά για την υλοποίηση του autocomplete <input type="text" name="actor" id="actor" /> <h4>Cast</h4> <button type="button" id="add_actor" class="btn btn-primary btn-sm">Add Actor</button> <ul class="list-unstyled" id="cast"></ul> // javascript κώδικας <script> $(document).ready(function() { // complete the name of the actor $('#actor').autocomplete(function() { source : "<?php echo base_url('movies/find/?'); ?>" }); // append fields to the form $('#add_actor').click(function() { $('#cast').append('<li style="margin-bottom:5px;"><div class="row"><div class="col-md-6"><input type="text" class="form-control" placeholder="Actor" /></div><div class="col-md-6"><input type="text" name="character[]" class="form-control" placeholder="Character" /></div></div></li>'); }); }); </script> Επίσης όταν ( θα ) πληκρολογώ το όνομα του ηθοποιού στο κάθε input field που θα δημιουργήται από το append, θα πρέπει να εμφανίζoνται με autocomplete τα διαθέσιμα ονοματα από τη βάση που ταιριάζουν με ότι πληκτρολογώ. // η function που βρίσκεται στο source public function find() { $this->load->model('actor_model'); if (isset($_GET['term'])) { $actors = $this->actor_model->search($_GET['term']); if (count($actors) > 0) { foreach ($actors as $actor) { $array[] = $actor->name; } // echo json_encode($array); $this->output->set_content_type('application/json') ->set_output(json_encode($array)); } } } Στην ουσία όμως όταν θα πατάω "save" τα δεδομένα που θα στέλνονται για αποθήκευση θα είναι το ID ταινίας, τα ID των ηθοποιών που παίζουν σε αυτή (όχι τα ονόματα) και οι ρόλοι τους. P.s. ο κώδικας στο backend είναι php - CodeIgniter. To αναφέρω αν και δεν νομίζω ότι παίζει και πολύ σημαντικό ρόλο, μάλλον περισσότερο είναι θέμα jquery - ajax.
chrism4111 Δημοσ. 19 Φεβρουαρίου 2015 Δημοσ. 19 Φεβρουαρίου 2015 Δεν κατάλαβα κάτι?Ποιο είναι το πρόβλημα?
alou Δημοσ. 19 Φεβρουαρίου 2015 Δημοσ. 19 Φεβρουαρίου 2015 Αν κατάλαβα δεν παίρνει το actor id. Θα πρέπει καταρχάς να φτιάξεις την πληροφορία σωστά foreach ($actors as $actor) { $array[$actor->id] = $actor->name; } και μάλλον, στο select απο το dropdown του autocomplete να κάνεις assign το id σε κάποιο hidden input.
chrism4111 Δημοσ. 19 Φεβρουαρίου 2015 Δημοσ. 19 Φεβρουαρίου 2015 Να συμπληρώσω..Στην jQuery να χρησιμοποιείς πάντα την bind, delegate και on για τα events.. Γενικά σε δυναμικά πεδία να χρησιμοποιείς την on και όχι την click...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα