当前位置: 首页 > 知识库问答 >
问题:

使用Ajax的父子选择框WordPress

葛阳
2023-03-14

我只是试图选择父框,然后根据父框想要孩子,我的目的是创建父(国家)和子(城市)选择框,当有人选择国家时,它应该显示存储在数据库中的那个国家的城市。当用户选择国家时,页面不应该重新加载,但它应该击中数据库并获取该国家的城市,我创建了一个Wordpress页面,并从那里有很长的时间,我只是把我的html的父和子选择框。

HTML页面/Wordpress页面:

<select name="PER_COUNTRY" id="PER_COUNTRY">
<?php $rows= $wpdb->get_results($wpdb->prepare("SELECT * FROM country ORDER BY countryname" ,13,'gargle'),ARRAY_A);
foreach($rows as $row){?>
<option value="<?php echo $row["countrycode"]?>"><?php echo $row["countryname"]?></option>
</select>

插件文件夹是用相同的名称ajax测试创建的,并放置了2个文件,其中1个是ajax测试。php和测试。js

ajax测试代码。php如下所示:

<?php
/**
 * Plugin Name: Ajax Test
 * Plugin URI: http://test.org
 * Description: Allows users to select cities
 * Version: 1.0.0
 * Author: Javed
 * Author URI: http://test.org
 * License: GPL2
 */
 add_action( 'wp_enqueue_scripts', 'my_enqueue' );
 function my_enqueue() {
 wp_enqueue_script( 'ajax-script', plugins_url( '/test.js', __FILE__ ), array('jquery'));
 wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' )));
 }

 function my_action() {
 $country_id = $_REQUEST['country_id'];
 echo $country_id;
 die(); 
 }
 add_action('wp_ajax_my_action', 'my_action' );
 add_action('wp_ajax_nopriv_my_action', 'my_action');
 ?>

在上面的代码中,我没有调用全局db,如果我可以在这里处理用户选择框的值,并可以发送回子选择框,那么我可以自己进行db和表查询。

test.js文件代码是:

 jQuery(document).ready(function(){
 jQuery('#PER_COUNTRY').change(function(){  
var country_id = jQuery(this).val();
 // alert(country_id);
 jQuery.ajax
        ({
        type: 'post',
        url: ajax_object.ajax_url,
        data: {
            action : 'my_action',
            country_id : country_id,
            },
        success: function(data)
            {
            alert(data);
            } 
        });
     });
 });

如您所见//alert(国家/地区id);在测试中被注释。js这是为了测试,是的,它正在获得价值,但我认为问题在于Ajax帖子,在这方面需要你们的帮助,请指导我。我在这里做的是什么,我已经阅读了很多教程,但我没有发现我的代码中有任何错误。

共有1个答案

充星腾
2023-03-14

好吧,现在我给我自己的问题的答案,只是因为我自己解决了它,我只想分享答案,这样,如果任何人也面临同样的问题可以解决它,我的所有代码都是完美的,我错过的只是函数文件中的jQuery排队,我确实包含了来自页眉/页脚的jquery,它对所有jquery操作都很好,但对于Ajax,我们必须从函数中定义它,下面是一种在函数中定义jquery的方法:

if (!is_admin()) add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11);
function my_jquery_enqueue() {
wp_deregister_script('jquery');
wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", false, null);
wp_enqueue_script('jquery');
}

我仍然要感谢WisdmLabs,他们至少试图解决我的问题。:)

 类似资料:
  • 问题内容: 好的,这是我对Ajax的第一次尝试,它使我发疯,因为我实在无法绕开它。我想做的是在第一个框中用数据库中的客户填充,然后使用customerID通过select.php脚本从数据库中选择所有车辆ID。发生的情况是“客户”框被选中,但是选择客户时什么也没有发生。 这是我的Test.php文件: 这是我的select.php文件: 我正在尝试修改本教程以使用数据库,但到目前为止我没有成功。

  • 问题内容: 我较早前发布了一个问题,但运气不太好,我希望清除第二个下拉列表的内容并重新填充该下拉列表,具体取决于第一个下拉列表中的值。 我有以下选择框,如下所示: 在此下拉菜单下,我还为模型添加了另一个下拉菜单: onchange我想清除第二个下拉列表,并在其中填充与汽车品牌相关的模型。例如。 然后,我具有如下所示的PHP函数(我正在使用codeigniter)-该函数使用Car ID并返回所有模

  • 问题内容: 仅使用SQL(MySQL),我想选择一个父子关系的最后一个子行,其中子行按时间戳排序。 例如,使用表和,我想分别获取每个表的最新记录(即带有最新时间戳的记录)。 产生类似于下表的结果集的最佳SQL语法是什么? 问题答案:

  • 我正在使用TestCafe选择器来选择元素。这是一个复杂的Custin Child嵌套场景。 下面是HTML以了解我上面提到的内容: 在图片中,我提到了和,它们是父元素(具有相同的DOM),有一个grand grand child,而另一棵树中相同父元素的grand grand child是。我需要,但需要链接,因为所有父节点都有相同的DOM。

  • 我有以下html: 正如你所看到的那样。子列表div总是跟在带和一些文本的后面,就像div是h2的子列表一样(h2是子列表的标题)。另一个包含锚定标记。 我想得到div. sublist之前的所有h2标签。 这是我当前的xpath子句: 我最终得到了不同的元素(a、div、img),但h2元素。

  • 问题内容: Select id, name, ROW_NUMBER() OVER (ORDER BY id asc) as ‘RowNo’ from customers where RowNo between 50 AND 60 我正在尝试选择50到60之间的行的子集。问题是“ RowNo”是无效的列名。 谢谢 使用SQL SERVER 2008 R2 问题答案: 使用您的查询作为像下面这样的子查