2014-07-16 2 views
0

J'utilise jQuery Ajax pour envoyer des paramètres à un script PHP. Ci-dessous le script ajax JqueryJquery ajax paramètre est indéfini dans le script PHP

jQuery 
<script> 
$(document).ready(function() { 
    $("#builder_group").change(function() { 
     var selected_builder = $(this).val(); 
     alert(selected_builder); 
     $.ajax({ 
      type: 'POST', 
      url: 'getGroupzCode.php', 
      data: 'selected_builder', 
      datatype: 'json', 
      success: function (data) { 
       // Call this function on success     
       console.log(data); 
       var yourArray = JSON.parse(data); 
       console.log(yourArray); 
       $.each(yourArray, function (index, yourArray) { 
        $('#builder_group1').append($('<option/>', { 
         value: yourArray.id, 
         text: yourArray.name, 
        })); 
       }); 
      }, 
      error: function() { 
       displayDialogBox('Error', err.toString()); 
      } 
     }); 
    }); 
}); 
</script> 

Quand je vois dans la console Firebug je vois le Parametr passé est correct comme sélectionné, mais dans le script PHP je vois Undefined index

PHP 
    $builder_id=$_POST['selected_builder']; 
    error_log($builder_id); 
+0

Vous envoyez un type de données en json, donc PHP s'attend à lire json à partir des données, qui est simplement du texte. Changer en conséquence. Changez le type de données en texte ou changez les données en objet json –

Répondre

3
data: 'selected_builder', 

Ce n'est pas format approprié. Vous avez besoin de:

data: { selected_builder: selected_builder } 

Ce qui suit indique que vous recevez un JSON, est-ce exact? Si c'est le cas, le paramètre est "dataType" comme ci-dessous.

dataType: 'json', 

Si oui, vous êtes vous utilisez dans votre fichier php:

$encoded = json_encode($yourvariable); 
echo $encoded; 

Maintenant, si cela n'a pas été le cas, vous appelez la variable en php par:

$variable = $_POST["selected_builder"]; 
+0

Mais pouvez actualiser la liste déroulante à chaque fois – Rudra

+0

Je vois merci, @Rudra! –