Ajax使用POST方法将数据传递给php

时间:2017-12-11 08:50:16

标签: php jquery ajax

我试图在页面上显示值,但是值的显示发生在console.log上。

的script.js

        $(document).ready(function()
        {
            $('.variant_model').on('click', function()
            {
                var model_id = $(this).attr("id");
                $.ajax({
                    type: "POST",
                    url: url,
                    data: 'model_id='+model_id,
                    success: function(data)
                    {
                        console.log(data);
                    }
                });
            });
        });

的script.php

if(isset($_POST["model_id"]))
{
    $return = $_POST["model_id"];
    var_dump($return);
    die();
}
    $result = $DB->query('SELECT variant_model_name FROM variant_model WHERE model_id = "'.$return.'"');
...

2 个答案:

答案 0 :(得分:1)

在你的script.php中,你可以回复它而不是var_dump():

echo $return;
exit();

然后在你的script.js中你可以用.html()方法将它分配给一个元素体:

$('#showmodelid').html(data);

要使其正常工作,您必须拥有一个带有ID' showmodelid'在您的HTML正文中:

<h1>Model ID is: <span id="showmodelid"></span></h1>

您还可以保留console.log()语句以进行调试。但这不是为了在页面上显示内容。

已更新

修改script.php如下:

$return = $POST['model_id'];
$result = $DB->query('SELECT variant_model_name FROM variant_model WHERE model_id = "'.$return.'"');
echo json_encode($result);
exit();

现在按如下方式更新您的script.js:

// in ajax response
parseddata = JSON.parse(data);
$('#showmodelname').html(parseddata.variant_model_name);

有一个html元素来显示结果:

<h1>Model Name is: <span id="showmodelname"></span></h1>

应该这样做。

答案 1 :(得分:0)

确定。看完所有帖子后。我想我应该告诉你这里发生了什么。尝试一下。

<强>解决方案

if(isset($_POST["model_id"]))
{
    $return = $_POST["model_id"];
    $result = $DB->query('SELECT variant_model_name FROM variant_model WHERE model_id = "'.$return.'"');
    return $result; 
}

<强>推理

因为你有

var_dump($return);
die();

在PHP中,即使值正确发布,die()退出函数调用,它会将发布的值返回给ajax。删除die(),您的代码应该有效。此外,我调整了内部条件,因为我假设它应该只在model_id存在时进行查询。无论如何,你在这里做你需要的。

应用上述更改后,如果您检查控制台console.log(data)应该为您提供所有查询结果。现在,您可以使用html()append()

在页面中显示它