Bonjour à tous,

Je suis sous wordpress, et dans ma fonction php j'inclus mon script jquery ajax à l'aide de wp_enqueue_script de wordpress (qui marche très bien).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function load_my_scripts() {
 
//don't use (deregister) WP's jQuery version
wp_deregister_script( 'jquery' );
 
//Use jQuery from Google Code
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js');
wp_enqueue_script('jquery');
 
//Include one of my custom javascript files
wp_register_script('myscript', get_bloginfo('template_url').'/assets/js/jquery_quot.js', array('jquery'), '1.0', true );
wp_enqueue_script('myscript');
 
}
add_action('wp_enqueue_scripts', 'load_my_scripts');
Après dans mon fichier javascript j'ai ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(function(){
	$("#reservation").submit(function(e){
	donnees = $("#reservation").serialize();
	 $.ajax({
		type:"POST",
		url: $(this).attr('action'),
		data:donnees,
		//dataType:'json',
		success: function(data){
			alert('OK');
		},
		error: function(xhr, status, error) {
		  var err = eval("(" + xhr.responseText + ")");
		  console.log(err.Message);
		}
	});
	e.preventDefault();
	})
})
et dans mon fichier php (Qui est une page) :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/*
Template Name: quickQuot*/
get_header();
   global $wpdb;
    $depart     = $_POST['depart'];
    $arrivee    = $_POST['arrivee'];
    $pax        = $_POST['pax'];
    $type       = $_POST['type'];
    //$queryPrice = $wpdb->prepare("SELECT * FROM quotation WHERE depart = '.$depart.' AND arrivee = '.$arrivee.' AND pax = '.$pax.' AND type = '.$type.'");
    $queryPrice = $wpdb->prepare("SELECT * FROM quotation WHERE depart='".$depart."' AND arrivee='".$arrivee."' AND pax='".$pax."' AND type='".$type."' ");
	$listPrice  = $wpdb->get_results($queryPrice);
    print json_encode($listPrice);
get_footer();
?>

le resultat json_encode

Code : Sélectionner tout - Visualiser dans une fenêtre à part
[{"ID":"60","depart":"Paris","arrivee":"Versailles","pax":"1","type":"Aller","sherut":"0","privee":"75","vip":"0"}]
Ce que je veux faire, recuperer les valeurs de depart, arrivee, pax, type à l'aide de jquery ajax.

Le problème :
Quand j'utilise le dataType : 'json' j'ai ça dans la console :

Uncaught SyntaxError: Unexpected token < jquery_quot.js:13
$.ajax.error jquery_quot.js:13
c jquery.js:3
p.fireWith jquery.js:3
k jquery.js:5
r

Par contre quand je ne met pas de dataType:'json', le script passe dans succès et affiche OK sans problème.

Quelqu'un a une idée? J'ai testé le format du json sur http://jsonlint.com/ et le resultat est bon, donc d'ou peut venir l'erreur?