PHP值不使用AJAX Post更新

时间:2015-10-21 16:44:32

标签: javascript php jquery ajax

我需要在PHP中接收javascript变量,所以我设置了我的Ajax调用和脚本,我已经验证了AJAX发送回正确的响应,似乎服务器端不想实际提取信息。这是我的javascript

$("#payments2").on("change", function() {

    $("#p1").val($(this).find("option:selected").text());

    var Id = $(this).find("option:selected").attr('value');
    var Ids = $("#payments").find("option:selected").attr('value');

    $.post("postit.php", { 
        Id: Id,
        Ids: Ids
    }, function(data){

    var theResult = data;
    }, 'json' );
});
$("#exchange").on("change", function() {
    var am = $(this).attr('value');
    var fee = $("#fee").attr('value');
    var cost = $("#cost").attr('value');
    var perc = fee / 100;
    var tot = perc * am;
    var total = am - tot - cost;

    $("#return").val(total);
});

这是我的PHP变量调用

<li>
    <label for="exchange">Amount to Exchange</label>
    <input type="text" id="exchange" name="exchange" maxlength="100">
    <span>Amount to Exchange</span>
</li>
<?php
$amounts = $db->query("SELECT * FROM `exchange` WHERE `fromp` = '".$_POST['fromp']."' AND `top` = '".$_POST['top']."'");
$amo = $amounts->fetch_assoc();
?>
<input type="hidden" id="fee" name="fee" value="<?php echo $amo['fee'] ?>" />
<input type="hidden" id="cost" name="pay" value="<?php echo $amo['cost'] ?>" />
<li>
    <label for="return">Amount to Receive</label>
    <input type="text" id="return" name="return" maxlength="100" value="">
    <span>Amount you will receive</span>
</li>

由于我可以清楚地告诉我的Ajax调用正在发回正确的信息而且我的查询中没有出现任何错误,因此我不确定为什么feescost的值为&n #39; t更改导致我在NaN文本框中收到return

以下是我的postit.php文件

的内容
  $Id= isset($_POST['Id']) ? $_POST['Id'] : '';
  $Ids= isset($_POST['Ids']) ? $_POST['Ids'] : '';
  include "connect.php";
     $que = $db->query("SELECT * FROM `exchange` WHERE `fromp` = '".$Ids."' AND `top` = '".$Id."'");

    /* Get query results */

    $results = $que->fetch_assoc();

    /* Send back to client */

    echo json_encode($results);
    exit;  

这是我第一次使用从javascript到php的发布变量,所以我确信我做错了,或者有一种方法可以获取脚本使用javascript传递的信息,也许是一种方法来获取我在javascript函数中需要的变量而不是mysql查询?

2 个答案:

答案 0 :(得分:0)

也许我错过了一些东西,但你的jQuery正在发送&#39; Id&#39;和&#39; Ids&#39;作为表单数据,PHP正试图使用​​&#39; fromp&#39;和&#39; top&#39;。

此外,您的响应处理程序不会对DOM执行任何操作。您是否检查了Chrome调试器的“网络”面板,以查看PHP脚本的响应情况?

答案 1 :(得分:0)

您没有为json响应中的字段设置值,请尝试

$.post("postit.php", { 
    Id: Id,
    Ids: Ids
}, function(data){

    $("#fee").val(data['fee']);
    $("#cost").val(data['cost']);

}, 'json' );