[英]ajax request doen't return data
單擊div后,我嘗試更改數據,但未更改結果
JS代碼
$(document).ready(function() {
$('#piso .caixa').click(function() {
var valorpiso = $(this).text();
alert(valorpiso);
$.ajax({
type:"post",
url:"getpiso.php",
data:"npiso="+valorpiso,
sucess:function(data){
$("#caixas").html(data);
}
});
});
});
警報正在打印正確的值
PHP代碼
$piso1=$_POST["npiso"];
$result=mysql_query("select * FROM rooms where floor='$piso1' ");
while($dados=mysql_fetch_array($result)){
echo "<div id='caixa'>";
echo "<p>$dados[block].$dados[floor].$dados[room]</p>";
echo "</div>";
}
你能幫助我嗎?
這是您的實際代碼嗎? 回調函數有一個拼寫錯誤:應該是“成功”,而不是“成功”。
success:function(data){
$("#caixas").html(data);
}
如果那不起作用,請嘗試獲取有關正在發生的事情的更多信息。 使用某種開發工具來觀察ajax響應。 (在Chrome上為CTRL + SHIFT + I)
OBS:您的PHP代碼容易受到SQL注入的攻擊。 在這里閱讀有關它的更多信息: 如何防止PHP中的SQL注入?
有2個問題
1)@Rogerio說的對,您使用了"sucess":
正確的方法是"success":
但是現在使用jquery可以使用以下方法:
jqXHR.done(function( data, textStatus, jqXHR ) {});
成功回調選項的替代結構.done()
方法替換了不推薦使用的jqXHR.success()
方法。 有關實現的詳細信息,請參考deferred.done()
。
jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});
錯誤回調選項的替代構造.fail()
方法替換了不建議使用的.error()
方法。 有關實現的詳細信息,請參考deferred.fail()
。
jqXHR.always(function( data|jqXHR, textStatus, jqXHR|errorThrown ) { });
.always()
方法是complete回調選項的替代構造,它取代了不建議使用的.complete()
方法。
響應成功的請求,該函數的參數與.done()
的參數相同:data,textStatus和jqXHR對象。 對於失敗的請求,參數與.fail()
的參數相同:jqXHR對象,textStatus和errorThrown。 有關實現的詳細信息,請參考deferred.always()
。
jqXHR.then(function( data, textStatus, jqXHR ) {}, function( jqXHR, textStatus, errorThrown ) {});
合並了.done()
和.fail()
方法的功能,從而允許(從jQuery 1.8開始)對底層Promise進行操作。 有關實現的詳細信息,請參考deferred.then()
。
在以下網址中了解有關內容: http : //api.jquery.com/jquery.ajax/
一種類型,您使用"npiso="+valorpiso
,但未進行編碼,而是使用json,例如: { npiso: valorpiso }
(jQuery自動編碼數據)
2)請勿在HTML中使用重復的ID,此重復的ID應按結果編號顯示:
while($dados=mysql_fetch_array($result)){
echo "<div id='caixa'>";
使用class=
代替id=
使用Javascript:
$.ajax({
"type": "POST",
"url": "getpiso.php",
"data": { "npiso": valorpiso }
}).done(function(data) {
console.log(data);
$(".list_caixa").html(data);
}).fail(function(err) {
console.log("Failed", err);
}).always(function() {
console.log("complete");
});
“HTML”:
$piso1=$_POST["npiso"];
$result=mysql_query("select * FROM rooms where floor='$piso1' ");
while($dados=mysql_fetch_array($result)){
echo "<div class='list_caixa'>";
echo "<p>$dados[block].$dados[floor].$dados[room]</p>";
echo "</div>";
}
的index.php
`
<html>
<head>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(function () {
$('#piso .caixa').click(function () {
var valorpiso = $(this).text();
$.ajax({
type: "post",
url: "getpiso.php",
data: "npiso=" + valorpiso,
success: function (data) {
$("#caixas").html(data);
}
});
});
});
</script>
</head>
<body>
<div id="piso">
<p class="caixa" style="cursor:pointer;color:red;background-color:#000;padding:10px;">TEST</p>
</div>
<div id="caixas">
</div>
</body>
`
getpiso.php
<?php
if($_POST["npiso"]!=null){
$piso1=$_POST["npiso"];
echo "<div id='caixa'>";
echo "<p>".$piso1." RESULT</p>";
echo "</div>";
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.