Javascript没有输入带.php文件引用的函数

时间:2016-04-14 04:51:21

标签: javascript php wordpress

很长一段时间的应答者,第一次提问。

我正在配置页面页脚中引用的一小段js:

<script type='text/javascript' src='http://test.site.com/wp-content/themes/spacious/js/jsfile.js?ver=1.0.5'></script>

以下是输入的html:

<div>
    <form id="search" action="" method="POST">
        <input type="text" id="str" name="str" value="" />
        <input type="submit" value="search" />
    </form>
    <div id="search_results"></div>
</div>

js脚本文件如下:

(function func() {
    $("#search").bind('submit', function () {
        var value = $('#str').val();

        $.post('db_query.php', {
            value: value
        }, function (data) {
            $("#search_results").html(data);
        }); 

        return false;
    });
});

php文件如下:

<?php
    try {
        $db = new PDO('sqlsrv:Server=xx.xx.xx.xx;Database=xxxx','user','pass');
    }
    catch (Exception $e) {
        echo 'PDO connection error: ' . $e->getMessage();
        exit(1);
    }

    $sql=$db->prepare("SELECT top 20 Timestamp,Information,Location FROM Table WHERE JobReference = :val");
    $sql->execute(array(':val'=>$_REQUEST['value']));

    echo '<table>';
    echo '<th>Date Time</th><th>Information</th><th>Location</th>';

    while ($row=$sql->fetch())
    {
        echo "<tr><td>$row[Timestamp]</td><td>$row[Information]</td><td>$row[Location]</td></tr>";
    }
    echo '</table>';
?>

当我尝试使用Chrome进行调试时,它会在第一个&#39;(&#39;然后跳转到函数的末尾)停止。首先我认为这是因为.php文件引用,但它似乎甚至没有达到它?

我不知道该去哪儿...

非常感谢,Cameron。

2 个答案:

答案 0 :(得分:1)

您只是声明了一个名为func的JavaScript函数。但是你还必须调用该函数才能使代码正常工作。

在函数末尾添加另一个括号,如下所示:

(function func() {
$("#search").bind('submit', function () {
    var value = $('#str').val();
    $.post('db_query.php', {
        value: value
    }, function (data) {
        $("#search_results").html(data);
    }); return false;
  });
})();

答案 1 :(得分:0)

除了@Nano回答,你可以这样解决:

(function($) { //pass $ as jQuery in this scope
$("#search").bind('submit', function () {
    var value = $('#str').val();
    $.post('db_query.php', {
        value: value
    }, function (data) {
        $("#search_results").html(data);
    }); return false;
  });
})(jQuery); //$ is jQuery