[英]Pass jquery variable get from database from ajax to php
當我點擊按鈕時,它應該在按鈕下方顯示計數值(來自數據庫)
<button id="update">update</button>
<script>
$(document).ready(function() {
$('#update').click(function(){
var complete = 0;
$.ajax({
type: "POST",
URL: "functions/doneex.php",
data: {
complete: complete
},
success: function(res) {
//alert(res);
}
});
});
})
</script>
<?php
echo $res ;
?>
(從db獲取值)它被ajax調用
doneex.php
$query=$conn->prepare("SELECT COUNT(isdone) AS complete FROM $today_workout_tbl WHERE isdone=1");
$query -> execute();
$query -> bind_result($complete);
$query -> fetch();
$query -> close();
echo $complete;
在 PHP 中,您可以使用內置的 gobals 數組訪問在 post 請求中傳遞的數據:
$res = $_REQUEST['res']
要將它們包含到 ajax 請求中,您需要:檢索
表單元素,例如:
var valueOfResField = $('[name=res]').value
並通過ajax請求發送:
$.ajax({
type: "POST",
URL:"functions/doneex.php",
data:{complete :complete, res: valueOfResField},
success:function(res){
//alert(res);
$("#done").html(res);
}});
如果要在 PHP 中處理此變量值並將修改后的值返回到表單中,則必須將該值存儲在服務器上並進行 ajax 調用以再次檢索該值並在顯示的 html 頁面中修改該值。
這個問題很模糊,但我認為您想看看將 .ajax 調用的數據類型設置為 JSON,然后使用 json_encode(...) 從 PHP 腳本返回數據。 這是獲取從 PHP 腳本(在您的示例中為 doneex.php)返回的數據的簡單(且可讀)方式。
下面是一個例子:
Javascript:
$.ajax({
url: '/ajax/do_php_stuff.php',
type: 'POST',
data: 'pid=' + personid ,
dataType: 'json',
success: successCallback
});
function successCallback(response, status) {
if (response.ok) {
alert(response.data);
}
}
PHP (/ajax/do_php_stuff.php)
<?php
echo json_encode(Array('ok' => true, 'data'='hello');
?>
將此應用於您更新的問題:
<button id="update">update</button>
<script>
$(document).ready(function() {
$('#update').click(function(){
var complete = 0;
$.ajax({
type: "POST",
URL: "functions/doneex.php",
data: {
complete: complete
},
dataType: 'json'
success: function(res) {
alert(res.complete);
}
});
});
})
</script>
<?php
echo $res ;
?>
(從db獲取值)它被ajax調用
文件
$query=$conn->prepare("SELECT COUNT(isdone) AS complete FROM $today_workout_tbl WHERE isdone=1");
$query->execute();
$query->bind_result($complete);
$query->fetch();
$query->close();
echo json_encode(Array('complete' =>$complete));
但是第一個腳本中的“echo $res”將在 ajax 運行之前輸出腳本時呈現,...因此該部分將永遠無法工作。 如果此時您正在運行 PHP,您應該將來自 doneex.php 的內容包裝在一個函數中並從兩個腳本中調用它! 或者,如果您希望它在單擊按鈕時更新,則將值放入 a 並使用 jQuery 使用 .text() 設置 div 內的文本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.