我可以在我的javascript中包含php sql更新吗?

Can I include a php sql update within my javascript?

我正在尝试使用javascript和php的组合来在提交表单时更新sql数据库中的列。 sql数据库的名称是"answers",数据库中列的名称是"FunctionsConsistency",表单的id是"easytohard"。 但是,我不确定是否可以在此javascript代码中包含php(在下面用星号表示)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <script type='text/javascript'>
 $(document).ready(function () {
$('#easytohard').on('submit', function(e) {
    e.preventDefault();
    $.ajax({
        url : $(this).attr('action') || window.location.pathname,
        type:"POST",
        data: $(this).serialize(),
        success: function (data) {

******THIS IS THE PHP CODE*********
  $stmt = $db->prepare("UPDATE answers SET FunctionsConsistency = 1
                      WHERE id = ? AND FunctionsConsistency = 0"
) or die($db->error);
$stmt->bind_param("i", $id);
$stmt->execute();
 ******************    

        },
    });
});
 });

谢谢!


你不能混合使用Javascript和PHP。

Php应该在服务器端执行,而javascript意味着在客户端执行。

您可以将Php文件放在服务器上,然后使用ajax或其他任何方式将请求发送给它。

就像是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type='text/javascript'>
 $(document).ready(function () {
    $('#easytohard').on('submit', function(e) {
        e.preventDefault();
        $.ajax({
            url : $('http://path/to/your/php/file/on/server'),
            type:"POST",
            data: {id: 'your desired id here'},
            success: function (data) {
                // if it reach this line, it means script on the php file is executed
            },
        });
    });
 });

你的php文件应该在你的服务器上(路径:http://path/to/your/php/file/on/server),包含适当的include

1
2
3
4
5
6
<?php

$stmt = $db->prepare("UPDATE answers SET FunctionsConsistency = 1
              WHERE id = ? AND FunctionsConsistency = 0"
) or die($db->error);
$stmt->bind_param("i", $_POST['id']);
$stmt->execute();

请注意,您可以使用php中的$_POST访问post参数。

还有一些事情你应该考虑,例如当请求没有到达服务器或者如果服务器无法执行php文件...,但你明白了。

另外,看看这个和这个。 希望这可以帮助。