【问题标题】:Query database on button click mid form在按钮单击中间表单上查询数据库
【发布时间】:2013-12-18 00:48:21
【问题描述】:

我必须创建一种从我的数据库中获取 SpellMin 和 SpellMax 的方法,我尝试了各种方法都没有成功,这是我最近的尝试。 有没有人对我如何让它工作有任何见解,我认为它目前会导致一个错误,导致所有正在进行的脚本无法运行。

<script type="text/javascript">

    function CheckCast()
    {
        <?php

            $q10 = mysql_query("SELECT SpellMin, SpellMax FROM SpellsTable WHERE SpellName = {$_POST['mydropdown']};");
            if (!$q10) die (mysql_error());
            $minmax = mysql_fetch_array($q10);
            $_SESSION['SpellMin'] = $minmax["SpellMin"];
            $_SESSION['SpellMax'] = $minmax["SpellMax"];

        ?>

        var y = <?php echo json_encode($_SESSION['char']->Wisdom);?>;
        var x;
        x=Math.floor(Math.random()*99);
        a = <?php echo json_encode($_SESSION['SpellMin']);?>;
        b = <?php echo json_encode($_SESSION['SpellMax']);?>;
        var c;
        c=Math.floor(Math.random() * (parseInt(b) - parseInt(a) + 1)) + parseInt(a);

        if (x <= y)
        {
            alert("Spell Cast" + ' ' + c);

        }
        else
        {
            alert("Spell Failed");
        }
    }

</script>

我尝试使用 AJAX 并想出了这个

<script>

    $(document).ready(function() {
        $('#dropdown').change(function() {
            $.ajax({
                type: 'GET',
                url: 'getMinMax.php',
                data: 'ddb=' + $_POST['mydropdown'].val()
                });

        });
    });


</script>

调用几乎相同的 MYSQL 语句,除了:

$q10 = mysql_query("SELECT SpellMin, SpellMax FROM SpellsTable WHERE SpellName = {$_GET['ddb']};"); 

这是正确的还是我做错了?

【问题讨论】:

  • 你需要为此使用ajax
  • 没有理由让 PHP 块在 javascript 函数中进行查询。 “我认为它目前会导致错误” .... 好的,错误是什么?
  • 它不会显示错误它只是不会在查询后运行任何 JavaScript 代码,除非我将其注释掉。

标签: javascript php mysql function button


【解决方案1】:

您不能单独使用 jQuery,因为 Javascript 是一种客户端语言,而 php 在服务器上运行。您的 PHP 在脚本块中所做的所有事情都是在页面加载时回显,而不是在方法运行时。

但是,您可以使用中介 AJAX(异步 Javascript 和 XML),它将请求发送到服务器,并且可以用来做您想做的事情。

您可以通过jQuery website了解更多关于 AJAX 的信息

【讨论】:

  • 我认为他奇怪的编码风格让你大吃一惊。他在这里尝试的东西本质上没有错,它不需要 jquery/ajax。 PHP 构建发送到客户端并运行它的 javascript 函数。现在,制作我假设的游戏的代码可能需要 jquery/ajax...
  • 我不这么认为,正如标题中所说的那样。不过我可能是错的。有点不清楚
  • 我尝试使用 AJAX 并想出了这个 相同的 MYSQL 语句,除了: $q10 = mysql_query("SELECT SpellMin, SpellMax FROM SpellsTable WHERE SpellName = {$_GET['ddb']};"); 这是正确的还是我做错了?
  • 添加到主帖
猜你喜欢
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 2014-01-17
  • 2013-12-13
相关资源
最近更新 更多