Tôi mới sử dụng jQuery để xử lý AJAX và đã viết một kịch bản cơ bản để có được những điều cơ bản. Hiện tại tôi đang gửi một yêu cầu AJAX đến cùng một tệp và tôi muốn thực hiện một số xử lý bổ sung dựa trên kết quả của cuộc gọi AJAX đó.Gọi lại yêu cầu AJAX bằng cách sử dụng jQuery
Đây là mã của tôi:
**/*convertNum.php*/**
$num = $_POST['json'];
if (isset($num))
echo $num['number'] * 2;
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
td {border:none;}
</style>
</head>
<body>
<table width="800" border="1">
<tr>
<td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>
<td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>
</tr>
<tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>
</table>
<script>
$(document).ready(function() {
$('#getNum').click(function() {
var $numSent = $('#numSend').val();
var json = {"number":$numSent};
$.post("convertNum.php", {"json": json}).done(function (data)
{
alert(data);
}
);
});
});
</script>
</body>
</html>
Dưới đây là câu trả lời tôi nhận được nếu tôi gửi số '2':
4
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<style type="text/css">
td {border:none;}
</style>
</head>
<body>
<table width="800" border="1">
<tr>
<td align="center">Number To Send<br /><input type="text" id="numSend" size="40%" style="border:2px solid black;"></td>
<td align="center">Number Returned<br /><input type="text" id="numReturn" size="40%" readonly></td>
</tr>
<tr><td align="center" colspan="4"><input type="button" value="Get Number" id="getNum" /></td></tr>
</table>
<script>
$(document).ready(function() {
$('#getNum').click(function() {
var $numSent = $('#numSend').val();
var json = {"number":$numSent};
$.post("convertNum.php", {"json": json}).done(function (data)
{
alert(data);
}
);
});
});
</script>
</body>
</html>
Rõ ràng tôi chỉ quan tâm trong việc tiếp nhận và sử dụng số '4', do đó câu hỏi của tôi: Cách tốt nhất để xác định chính xác dữ liệu nào tôi muốn được trả về?
Vài suy nghĩ tôi đã có:
- gói tất cả HTML của tôi bên trong một câu lệnh if (ví dụ, nếu $ num isset, làm html KHÔNG đầu ra; khác đầu ra HTML) nhưng sau đó tôi đang vang vọng HTML và tôi không muốn làm điều đó.
- Thiết lập một tập lệnh PHP riêng để nhận cuộc gọi AJAX của tôi: Đó là những gì tôi đã làm lúc đầu và nó hoạt động tốt. Tuy nhiên, tôi quan tâm đến việc giữ mọi thứ bên trong một tệp và muốn khám phá những cách có thể làm như vậy.
Tôi chắc chắn có một cách thanh lịch để thực hiện việc này. Cảm ơn mọi lời đề nghị!
lý do tại sao bạn muốn giữ mọi thứ trong một tập tin. Bạn nên cấu trúc mã của bạn. Nếu không, bạn sẽ nhận được các tệp rất lage với mã khó hiểu. Và những gì về css và javascript? Bạn có muốn có tất cả trong một tập tin không? Bạn có thể làm điều đó nhưng tôi nghĩ rằng điều này sẽ không được thanh lịch. – steven
Steven - đủ công bằng. Tôi muốn khám phá việc giữ tất cả các cuộc gọi trong một tệp là vì tôi đang làm việc trên một dự án nơi chúng tôi sẽ có nhiều trang php thực hiện cuộc gọi AJAX và tôi đang cố gắng xác định các phương pháp hay nhất để xử lý trường hợp này. Bây giờ, tôi sẽ nói rằng mỗi tập lệnh sử dụng cuộc gọi AJAX như thế này sẽ có tệp .inc tương ứng. Có lẽ tốt nhất là thực hiện cuộc gọi POST đến tệp đó, thay vì sử dụng cùng một trang hoặc một trang khác kịch bản. Tôi đang trong giai đoạn phát triển khám phá ngay bây giờ và câu trả lời tôi nhận được rất hữu ích. – JRizz