簡體   English   中英

將jquery變量從數據庫從ajax傳遞到php

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM