在WordPressAjax中,调用从数据库获取数据并返回索引文件的PHP文件
我创建了一个基于PHP、Jquery和Ajax的代码,这是一个关于更改选项的不断变化的下拉列表。这个计划有三个部分 第一部分 文件的第一部分是一个具有3个输入字段的表单,这些字段从数据库获取选项数据,更改选项时,将过滤下一个输入字段中的值在WordPressAjax中,调用从数据库获取数据并返回索引文件的PHP文件,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我创建了一个基于PHP、Jquery和Ajax的代码,这是一个关于更改选项的不断变化的下拉列表。这个计划有三个部分 第一部分 文件的第一部分是一个具有3个输入字段的表单,这些字段从数据库获取选项数据,更改选项时,将过滤下一个输入字段中的值 <?php /** * Plugin Name: My Car Plugin */ add_action(the_content, my_car_plugin); ?> <?php function regis
<?php /** * Plugin Name: My Car Plugin */
add_action(the_content, my_car_plugin); ?>
<?php
function register_script() {
wp_enqueue_script('my_car_script', 'http://www.thenewsol.com/zaman/my_car_script.js', 'jQuery', '1.5.2');
}
function print_script() {
wp_print_scripts('my_car_script');
}
?>
<?php
function my_car_plugin() {
register_script();
print_script();
?>
<div style="width:800px; margin:auto;padding-top:100px;">
<form>
<select id="Make" onchange="load_options(this.value,'Model');">
<option value="">- Select Make -</option>
</select>
<select id="Model" onchange="load_options(this.value,'Year');">
<option value="">- Select Model -</option>
</select>
<select id="Year">
<option value="">- Select Year -</option>
</select>
<img src="loader.gif" id="loading" align="absmiddle" style="display:none;"/>
<?php
}
?>
你的代码就是这个
jQuery.post(
ajax_object.ajax_url,
data, function(response) {
alert('Got this from the server: ' + response); });
请以该格式转换/更改我的代码为什么不使用add_action(“wp_ajax_my_action”,“my_action_callback”)
请参阅。添加一些代码检查选项,查看运行哪些文件,直到它们运行到哪里。。。第一个jqury是通过wp_enqueue_脚本加载的吗?你做的插件和Ajax都非常错误。这是不可能解决的。在此处和处研究工作示例并重建您的东西。属于
<?php
class AJAX {
public $_index = NULL;
public function __construct(){
$this->process_data();
}
private function process_data(){
global $wpdb; // Wordpress Global Database Variable access
$this->_index = ($_REQUEST['index'])?$_REQUEST['index']:NULL;
$id = ($_REQUEST['id'])?$_REQUEST['id']:NULL;
switch($this->_index){
case 'Make':
$results = $wpdb->get_results("SELECT * FROM wp_countries");
echo "<select>";
foreach($results as $rows){
echo "<option value=\"$rows->id\">".$rows->country_name."</option>";
}
echo "</select>";
break;
case 'Model':
$results = $wpdb->get_results("SELECT * FROM wp_states WHERE country_id=$id");
echo "<select>";
foreach($results as $rows){
echo "<option value=\"$rows->id\">$rows->state_name</option>";
}
echo "</select>";
break;
case 'Year':
$results = $wpdb->get_results("SELECT * FROM wp_cities WHERE state_id=$id");
echo "<select>";
foreach($results as $rows){
echo "<option value=\"$rows->id\">$rows->city_name</option>";
}
echo "</select>";
break;
default:
break;
}
}
}
$obj = new AJAX();
?>
jQuery.ajax({ url: "ajax.php?index="+index+"&id="+id,
complete: function(){$("#loading").hide();},
success: function(data) {
jQuery("#"+index).html(data); } })
jQuery.post(
ajax_object.ajax_url,
data, function(response) {
alert('Got this from the server: ' + response); });
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
global $wpdb; // this is how you get access to the database
$whatever = intval( $_POST['whatever'] );
$whatever += 10;
echo $whatever;
die(); // this is required to return a proper result
}
jQuery(document).ready(function($) {
var data = {
action: 'my_action',
whatever: ajax_object.we_value // We pass php values differently!
};
// We can also pass the url value separately from ajaxurl for front end AJAX implementations
jQuery.post(ajax_object.ajax_url, data, function(response) {
alert('Got this from the server: ' + response);
});
});