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

CodeIgniter & jQuery - Ajax


Lykos22

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

Θα ήθελα μία μικρή βοήθεια. Έχω δημιουργήσει μια σελίδα/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
	});
});
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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