使用嵌入式PHP将jQuery函数插入到Wordpress单页中

时间:2015-02-27 21:47:12

标签: php jquery wordpress wordpress-theming

我正在尝试将jQuery函数插入到连接到MySQL数据库的Wordpress页面中,该数据库返回表单中自动完成文本输入的大量项目列表。它不起作用。

这是我在我正在使用的主题的文件结构中创建的js文件夹中的自己的.js文件中的函数:

jQuery(document).ready(function($) {

$(

    var availableTags = [

    <?php

    $dbh=mysql_connect ("localhost", "db_name", "db_name") or die ('I cannot connect to the database because: ' . mysql_error());
    mysql_select_db ("db_name") or ("Database not found");

    $query = "SELECT col FROM table";
    $result = mysql_query($query) or die ( $result."<br/><br/>".mysql_error());

    while ($row = mysql_fetch_array($result)) {
    echo "\"". $row['col']."\", ";
    }

    // $result = mysql_query($query) or die ( $result."<br/><br/>".mysql_error());

    mysql_close($connect);

    ?>
    ];

    $( "#id" ).autocomplete({
    source: availableTags

    });

)});

这些是外部链接:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>

这是我在主题的functions.php文件中插入的内容:

add_action( 'wp_enqueue_scripts', 'add_my_script' , 11 );
function add_my_script() {
    wp_enqueue_script(
        'function_name', 
        get_template_directory_uri() . '/js/function_name.js',
        array('jquery'),
        '1.0',
        true

    );
}

2 个答案:

答案 0 :(得分:0)

您无法将php代码运行到javascript文件中。所以你应该做什么:

  1. 你应该使用ajax,首先要了解如何在wordpress中使用ajax。参考示例:http://www.smashingmagazine.com/2011/10/18/how-to-use-ajax-in-wordpress/

  2. Wordpress已经有数据库连接,你不应该重新连接。只是你会问问题。这是类引用如何在wordpress中查询和查询相关的其他内容:http://codex.wordpress.org/Class_Reference/wpdb

  3. 您已提及输入字段中的自动填充功能,因此您应将onkeyuponkeypress类似事件用于js代码段。

  4. 但是,您应该分别学习整体事物,然后按照您的期望执行。

答案 1 :(得分:0)

global $wpdb;

$results = $wpdb->get_results( "SELECT col FROM table");
foreach ($results as $tableResult)
{
    echo $tableResult->col;
}