J'essaye de faire 2 appels AJAX séparés en utilisant des boutons. Ce que je veux arriver est: quand Button1 est cliqué, ProductsTable montre des données du webservice; lorsque Button2 est cliqué, OthersTable affiche ses propres données depuis le webservice. Mais maintenant, lorsque l'un des boutons est cliqué, rien ne s'affiche. Je sais que le code fonctionne s'il n'y en a qu'un et qu'il n'est pas enroulé autour d'une fonction .click.Comment faire des appels AJAX multiples mais séparés dans JQuery
Aucun message d'erreur. ASP.NET 4.0, JQuery 1.4.4. Ne pas utiliser ScriptManager. Ne pas utiliser UpdatePanels.
code ci-dessous:
<script src="Scripts/jquery-1.4.4.js" type="text/javascript"></script>
<script src="Scripts/jquery.tmpl.js" type="text/javascript"></script>
<script id="ProductsTemplate" type="text/x-query-tmpl">
<tables id="ProductsTemplate">
<thead>
</thead>
<tbody>
{{each d}}
{{tmpl($value) '#ProductsRowTemplate'}}
{{/each}}
</tbody>
</tables>
</script>
<script id="ProductsRowTemplate" type="text/x-query-tmpl">
<tr>
<td>${title}</td>
<td>${size}</td>
<td>${price}</td>
</tr>
</script>
<script id="Products2Template" type="text/x-query-tmpl">
<tables id="Products2Template">
<thead>
</thead>
<tbody>
{{each d}}
{{tmpl($value) '#Products2RowTemplate'}}
{{/each}}
</tbody>
</tables>
</script>
<script id="Products2RowTemplate" type="text/x-query-tmpl">
<tr>
<td>${title}</td>
<td>${size}</td>
<td>${price}</td>
</tr>
</script>
<script type="text/javascript">
$(document).ready(function() {
$("#Button1").click(function() {
$.ajax({
type: "POST",
url: "JSON-WebService.asmx/getProducts",
data: "{}",
contentType: "application/json; charset=UTF-8",
dataType: "json",
success: function (data) {
$('#ProductsTemplate').tmpl(data).appendTo('#ProductsTable');
alert("Products works");
},
failure: function (data) {
alert("Products didn't work");
}
});
});
$("#Button2").click(function() {
$.ajax({
type: "POST",
url: "JSON-WebService.asmx/getProducts",
data: "{}",
contentType: "application/json; charset=UTF-8",
dataType: "json",
success: function (data) {
$('#Products2Template').tmpl(data).appendTo('#OthersTable');
alert("Products2 works");
},
failure: function (data) {
alert("Products2 didn't work");
}
});
});
});
</script>
<title>Using JQuery</title>
<form id="form1" runat="server">
<div id="ProductsTable">
</div>
<div id="OthersTable">
</div>
<div>
<asp:Button ID="Button1" runat="server" Text="Products" />
<asp:Button ID="Button2" runat="server" Text="Products2" />
</div>
</form>
c'est bizarre, nous pouvons avoir autant reqeusts ajax dans une page, je pense qu'il ya quelque chose de mal à l'arrière, vous pouvez regarder les résultats dans Firebug panneau .net ou une point de rupture dans le backend – kobe
La requête arrive après que j'ai cliqué, mais c'est tout ce que je peux dire à partir de cela. Ma syntaxe est-elle incorrecte? – dotnetN00b
à quoi ressemble votre HTML rendu pour ces boutons? –