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

CodeIgniter & jQuery - Ajax

Ερώτηση

Θα ήθελα μία μικρή βοήθεια. Έχω δημιουργήσει μια σελίδα/controller όπου μπορώ να κάνω επεξεργασία μιας σελίδας, μέσω μιας φόρμας και αυτό που θέλω είναι το validation των πεδίων να γίνεται με  jQuery - Ajax εαν είναι ενεργό το Javascript στον browser, αλλιώς να γίνεται η επεξεργασία κανονικά. Εαν υπάρχουν σφάλματα στο validation να εμφανίζονται το κάθε ένα δίπλα στο αντίστοιχο πεδίο, αν γίνεται (αλλιώς πάνω από τη φόρμα όλα τα λάθη σαν λίστα).

 

Εδώ είναι Controller μου

public function edit($id){
 		.....

 		//ορισμός rules των πεδίων
 		$rules = $this->page_model->rules;
 		$this->form_validation->set_rules($rules);
 		
 		// do validation
 		if ($this->form_validation->run() === TRUE) {
 			$data = $this->page_model->array_from_post(array('parent_id','title','slug','body','template'));
 			$this->page_model->save($data, $id);
 			redirect('admin/page');
 		}

 		//load view
 		$this->data['subview'] = 'admin/page/edit';
 		$this->load->view('admin/edit_page', $this->data);
 	}

,εδώ το είναι το view μου

<?php echo validation_errors(); ?>
	<?php echo form_open(); ?>
	<table>
		<tr>
			<td>Title:</td>
			<td><?php echo form_input('title', set_value('title', $page->title)); ?></td><?php echo form_error('title'); ?>
		</tr>
		<tr>
			<td>Slug:</td>
			<td><?php echo form_input('slug', set_value('slug', $page->slug)); ?></td><?php echo form_error('slug'); ?>
		</tr>
		<tr>
			<td>Body:</td><br />
			<td><?php echo form_textarea('body', set_value('body', $page->body), 'class="tinymce"'); ?></td><?php echo form_error('body'); ?>
		</tr>

και εδώ το jquery script

$(document).ready(function () {
	$('form.ajax-form').on('submit', function() {
		var obj = $(this), // (*) references the current object/form each time
			url = obj.attr('action'),
			method = obj.attr('method'),
			data = {};

		obj.find('[name]').each(function(index, value) {
			// console.log(value);
			var obj = $(this),
				name = obj.attr('name'),
				value = obj.val();

			data[name] = value;
		});

		$.ajax({
			// see the (*)
			url: url,
			type: method,
			data: data,
			success: function(response) {
				// console.log(response);
				// $("#content").html(data); // πλαίσιο errors πάνω από τη φόρμα
			}
		}).error(function() {
			// show errors
		}).complete(function() {
			// alert
		});

		// console.log('Trigger');
		return false; //disable refresh
	});
});

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

1 απάντηση σε αυτή την ερώτηση

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

  • 0

Απλά πρεπει να διαβάσεις το form validation class του CI, αλλα αυτο το άρθο θα σε βοηθήσει άμεσα.
http://gazpo.com/2011/07/codeigniter-jquery-form-validation/

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.