将jquery变量从数据库从ajax传递到php

时间:2015-07-29 10:06:10

标签: php jquery ajax

当我点击按钮时,它应显示按钮

下方的计数值(来自数据库)
<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;

2 个答案:

答案 0 :(得分:0)

在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页面。

答案 1 :(得分:0)

问题非常模糊,但我认为您希望将.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

调用

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 json_encode(Array('complete' =>$complete));

但是当ajax运行之前输出脚本时,第一个脚本中的“echo $ res”将被呈现,...因此该部分永远不会工作。如果你现在正在运行PHP,你应该将函数中的doneex.php包装起来并从两个脚本中调用它!或者,如果您希望在单击按钮时更新它,然后将值放在a中并使用jQuery在div中设置文本.text()