Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用嵌入式PHP将jQuery函数插入Wordpress单页_Php_Jquery_Wordpress_Wordpress Theming - Fatal编程技术网

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

用嵌入式PHP将jQuery函数插入Wordpress单页,php,jquery,wordpress,wordpress-theming,Php,Jquery,Wordpress,Wordpress Theming,我试图在Wordpress页面中插入一个jQuery函数,该页面连接到MySQL数据库,该数据库为表单中的自动完成文本输入返回一个大的项目列表。它不起作用了 下面是我在自己的.js文件中的函数,该文件位于我在使用的主题的文件结构中创建的js文件夹中: jQuery(document).ready(function($) { $( var availableTags = [ <?php $dbh=mysql_connect ("localhost", "db_

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

下面是我在自己的.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

    });

)});

您不能将
php
代码运行到javascript文件中。所以你应该做的是:

  • 您应该使用ajax,首先学习如何在wordpress中使用ajax。参考示例:

  • Wordpress已经有数据库连接,您不应该重新连接。你只会做任务。这是如何在wordpress中查询和其他查询相关的类参考:

  • 您已经在输入字段中提到了自动完成,因此您应该在js代码段中使用类似的事件


  • 然而,你应该单独学习所有的事情,然后按照你的期望去执行

    你能解释一下“不工作”是什么意思吗?错误,格式错误,…。您不能在js文件中运行php代码。服务器不会编译它,因为您直接包含jquery,然后将其添加为排队脚本的一个要求。拿出链接,wordpress不需要它们。另外,正如@charlietfl所说,您不能从js表单内部编译php,因为php是在服务器端编译的,js是在运行时编译的。这段代码在本地工作,php嵌入在jquery中,jquery嵌入在标记中,所有这些都嵌入在页面的底部……我很感谢您的反馈,但是有什么解决方案呢?是否有指向教程或视频的链接?是的,但是当用户开始键入时,如何在HTML表单中获取文本字段以自动填充这些值?
    global $wpdb;
    
    $results = $wpdb->get_results( "SELECT col FROM table");
    foreach ($results as $tableResult)
    {
        echo $tableResult->col;
    }
    
    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
    
        );
    }
    
    global $wpdb;
    
    $results = $wpdb->get_results( "SELECT col FROM table");
    foreach ($results as $tableResult)
    {
        echo $tableResult->col;
    }