这是我第一次做ajax而且我必须承认我很困惑。我想要做的是取3选择html的值来向我的数据库发出请求,根据所需的选择给我一个分数。使用ajax的目的是我不想要提交按钮,我希望当我的一个选择更改的值只选择我的数据库中的结果根据新值更改时。所以母鸡我在我的选择中更改了一个值我调用了一个javascript,它从我的select中获取值并将ajax传递给我的function.php然后使用我的Selects函数的值发出请求,然后返回结果我的要求。
我在存档页面中有我的html,在外部文件中有我的.js,我的php函数在function.php中。
我的问题是,不工作,我不知道为什么,我跟随5 tuto,所有都不同,让我迷惑。
对不起我的英语,这种语言不是我的第一语言。
现在我的代码看起来像这样:
的javascript:
function showWidth($) {
// get the value of my 3 html select
var width1 = document.getElementById('width1').value;
var width2 = document.getElementById('width2').value;
var width3 = document.getElementById('width3').value;
if (width1!="aucun" && width2!="aucun" && width3!="aucun") {
$.ajax({
ObjectName.ajaxurl,
data: {
action:'script_handle',
width01 : width1,
width02 : width2,
width03 : width3
},
success:function(data) {
// This outputs the result of the ajax request
document.getElementById("result").innerHTML=console.log(data);
},
error: function(errorThrown){
console.log(errorThrown);
}
});
}
}
PHP(在function.php中):
function widthcalculate(){
if( isset($_REQUEST) ) {
$width1 = $_REQUEST['width01'];
$width2 = $_REQUEST['width02'];
$width3 = $_REQUEST['width03'];
// Let's take the data that was sent and do something with it
global $wpdb;
$where = "'".$width1."' AND camber = '".$width2."' AND handrim = '".$width3."'";
$sql = $wpdb->get_results(
"SELECT result FROM mc_widthCalculatorResult WHERE wheel = ".$where.""
);
foreach ($sql as $element) {
echo $element->result;
}
echo $result;
//print_r($_REQUEST);
}
die();
}
add_action( 'wp_ajax_script_handle', 'widthcalculate' ); // Hook for the WordPress Dashboard.
add_action( 'wp_ajax_script_handle_nopriv', 'widthcalculate' ); // Hook for the user facing side of the site.
function register_scripts() {
wp_register_script( 'script-handle', $path_to_javascript_file, $dependencies, 'version', $in_footer = true );
wp_enqueue_script( 'script-handle' );
wp_localize_script( 'script-handle', 'ObjectName', array( 'ajaxurl' => admin_url( '/wp-admin/admin-ajax.php' ), 'parameter' => $whatever_you_want_to_pass ) );
}
add_action( 'enqueue_scripts', 'register_scripts' );