2017-09-18 1 views
0

J'ai un élément li que je passe par mon serveur pour récupérer des données à partir de la base de données, mais je suis incapable de le faire:Comment passer le paramètre à une fonction onclick

<li name="Physics" value="Physics" id="physics" onclick="drawChart(id)">Physics</li> 

Cette fonction drawChart utilisation google chart API.

function drawChart(value) { 
     var jsonData = $.ajax({ 
      url: "getData.php?subject=value", 
      dataType: "json", 
      async: false 
      }).responseText; 
... 

Le getData.php fonctionne bien, mais je suis incapable de passer le paramètre et l'utiliser.

+0

Vous utilisez le texte littéral 'value', pas concaténer la valeur réelle de la variable appelée' 'value' –

+0

drawChart (this.id)' et dans votre fonction: 'url : "getData.php? subject =" + encodeURIComponent (value), ' – haim770

Répondre

2

Arrêtez d'utiliser le javascript en ligne, et la question permet de résoudre elle-même

$('#physics').on('click', function() { 
 
    drawChart(this.id); 
 
}); 
 

 
function drawChart(value) { 
 
     var jsonData = $.ajax({ 
 
      url  : "getData.php", 
 
      data  : {subject : value}, 
 
      dataType : "json", 
 
     }).done(function(response) { 
 
      // use response here 
 
     }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li name="Physics" value="Physics" id="physics" >Physics</li>

En supposant $.ajax dans votre code est jQuery, pourquoi ne pas utiliser plus de celui-ci ...

+0

Vous avez oublié de concaténer la" valeur "réelle – haim770

1

Vous pourrait passer en this en tant qu'argument de la fonction onclick.

function clickHandler(el) { 
 
    console.log(el.id); 
 
}
<button id="clickMe" onclick="clickHandler(this)">Click me</button>