如何将变量从Javascript返回到PHP,以将其用于查询“ onchange”?

时间:2018-08-08 12:00:44

标签: javascript php ajax

JAVASCRIPT

$(document).ready(function() {
  $("#p").change(function () {
    var p_id = $(this).val();
    console.log(p_id);
    $.ajax({
        url: "m/a/a.class.php",
        method: "POST",
        data: {pId: p_id},

        success: function (data)
        {
            console.log(data); //<------ this gives me an empty output
            alert("success!");
        }
    });

   });
});

我试图从选择器中获取选定值的ID,当我更改选择器时,我收到警报“成功!”。并在控制台中显示结果,这是正确的。当我想在使用ajax的PHP中使用此结果时,它给我一个奇怪的输出,因此我不能在以下sql语句中使用该变量。

我在做什么错?为了让您理解,我想获取产品的发布输入,因此我可以通过“产品”的ID过滤下一个选择器,因此我要获取依赖的选择器“ onchange”。我已经读过许多其他问题,当我在成功函数中使用类似以下内容的方法时,它也可以在其他示例中使用:

success: function (data)
            {
                $('#state').html(data);
            }

但这在这里的示例中不起作用,因为当我使用“ $ _POST ['produkt_id']”时,它要么给我一个空查询,要么出现错误,因为它从我的计算机中传递数据屏幕截图。在此先感谢您,并随时提出问题。

更新:

这是我要获取先前输入的地方。

case 'linie':
            if(isset($_POST['pId'])) {
                $t = $_POST['pId'];
                $sql = 'SELECT id, bezeichnung  '
                    . 'FROM l "
                    . 'LEFT JOIN ' .produkte p ON p.id=l.p_id '
                    . 'WHERE l.p_id =' . "$t" . 'AND l.deleted=0 AND p.deleted=0 '
                    . 'ORDER BY l.bezeichnung ';
                break;
            }

2 个答案:

答案 0 :(得分:0)

错误说明了这一点。您使用的PHP调用了“ include_once”,而您要包含的文件不存在。 使得PHP返回带有错误的响应,并且由于该错误文本,该响应不再是有效的JSON。

答案 1 :(得分:0)

在您的ajax代码中,您应该放置文件请求的url路径,而在项目系统中放置文件路径,这就是为什么ajax文件找不到并包含要执行ajax请求的文件的原因

$.ajax({
        url: "modules/ausschuss/ausschuss.class.php", //remove this
        url: "full url for your file execution"

        method: "POST",
        data: {produkt_id: produkt_id},

        success: function (data)
        {
            alert("success!");
        }
    });