【问题标题】:Can I include a php sql update within my javascript?我可以在我的 javascript 中包含 php sql 更新吗?
【发布时间】:2016-01-15 03:55:09
【问题描述】:

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

 <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();
 ******************     

        },
    });
});
 });
 </script>

谢谢!

【问题讨论】:

    标签: javascript php


    【解决方案1】:

    你不能像那样混合使用 Javascript 和 PHP。

    php 应该在服务器端执行,而 javascript 应该在客户端执行。

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

    类似:

    <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
                },
            });
        });
     });
     </script>
    

    并且您的 php 文件应该在您的服务器上(路径:http://path/to/your/php/file/on/server),包含正确的 includes 才能工作。

    <?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.ini 中使用 $_POST 访问 post 参数。

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

    另外,看看thisthis。希望这会有所帮助。

    【讨论】:

    • 谢谢!我会试一试。对于上面写着“你想要的 id”的部分,我假设我不能使用 $id=$SESSION['id'],因为那将是 php.ini 文件。如何表明我想要与当前会话/用户关联的 id?
    • @user3666954 所以,你不需要放任何东西,只需删除参数。会话信息将自动发送,您可以在 php 文件上使用$_SESSION['id'] 没有问题。
    最近更新 更多