如何从jquery调用php例程然后对结果进行操作

时间:2014-01-21 18:47:51

标签: php jquery

我正在尝试实时查询数据库,以验证输入的数字是唯一的。

这是我构建html的php。

echo "<form action=create_materials.php method=post>";
echo "<table border=0 cellpadding=2 cellspacing=2 align=center>";
echo "<tr><td></td><td><input type=hidden size=20 name=action value=\"addupdate\"></td></tr>";
echo "<tr><td></td><td><input type=hidden size=20 name=subcreatematerial value=\"1\"></td></tr>";
echo "<tr><td></td><td><input type=hidden size=20 name=prodid value=" . $product['prodid'] . "></td></tr>";
echo "<tr><td></td><td><input type=hidden size=20 name=id value=" . $product['prodtype'] . "></td></tr>";
echo "<tr><td><input type=text size=10 id = 'cubcode' name=cubcode value = '".$form->value("cubcode")."'></td><td>".$form->error("user")."</td></tr>";
echo "<tr><td class=tabclearleft><b>Description</b></td><td><input type=text size=50 name=description value = '".$form->value("description")."'></td></tr>";
...
echo "<tr><td></td><td><input type=submit border=0 value=\"Submit\"></td></tr>";
echo "</table>";
echo "</form>";

这是我的jquery。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script>
$(function() {
$('#cubcode').focusout(function() {
        var cubcode = $(this).val();
    $.post('checkcubcode.php', { cubcode: cubcode }, function(data){
        if (data == '0') {
            alert("Successful");
                }
        else  {
            alert ('Failed');
            }   
        });
    });                             
});


</script>               

最后,这是我从jquery

调用的php代码
include("include/session.php");


function mysql_evaluate($query, $default_value=0) {
    $result = mysql_query($query);

    if (!$result ||mysql_num_rows($result) == 0) {
        return $default_value;
    }
else {
    return mysql_result($result, 0);
    }
    }

    if ($_POST && isset($_POST['cubcode'])) {

        // sanitize the value
        $cubcode = mysql_real_escape_string($_POST['cubcode']);

        // start the query
        $sql = "select count(*) from materials where cubcode = '".$cubcode."'";
        $result = mysql_evaluate($sql);

        return $result;
    }

当我跳出cubcode文本框

时,没有激活任何警报

1 个答案:

答案 0 :(得分:0)

我注意到你的代码中有行返回$ result;但是它不在任何特定的函数中,如果你使用的是return关键字,它将不会输出结果。

PHP Manual: return

您需要添加echo命令才能输出结果。否则将不会显示任何内容。

echo $result;

PHP Manual: echo

我注意到您添加的JavaScript代码的另一件事。它最后有一个额外的右括号。

);
应该删除

Google Chrome和Firefox都有很好的工具来捕获这些错误。使用Google Chrome上的开发人员工具和Firefox上的Firebug来帮助您验证代码。还有许多Javascript Linters,例如JSLint,可以与不同的开发环境集成,可以帮助您验证这些内容。