问题的核心是我试图使用 HTML 下拉菜单的值来调用 php 函数,而无需重新加载整个页面。鉴于 PHP 是一种服务器端语言,我已经合并了 JQuery 来处理 onChange 事件,希望只重新加载页面的一部分。我要调用的 PHP 函数(即 wp_cart-button_for_product)会打印出添加到购物车按钮,但与添加到购物车按钮相关的变量最终取决于下拉菜单。我要重新加载的 div 标记(即按钮重新加载)在当前页面上,但 URL 会根据产品而变化。我已经尝试过 load 和 html 方法,但没有运气。
<script type = "text/javascript">
function productchange()
{
var currentrow = $('#productcategory1').val();
$("#jsvar").val(currentrow);
$.ajax({
type: "GET",
url: "http://www.example.com/wp-content/themes/themeX/storevar.php",
data: {'jsvar': currentrow},
complete: function(){
$('#button-reload').load("http://www.example.com/wp-content/themes/themeX/printbutton.php #button-reload > *");
// $('#button-reload').html($('#button-reload',data).html);
// $('#button-reload').load(location.href "#button-reload > *");
}});
return false;
}
</script>
<div id = "button-reload">
<?php echo print_wp_cart_button_for_product($products[$_SESSION['currentrow']]["Product"], $products[$_SESSION['currentrow']]["Price"]); ?>
</div>
<form method="get" action="http://www.example.com/wp-content/themes/themeX/storevar.php">
<input type="hidden" name="jsvar" id="jsvar" value="" />
</form>
存储变量.php
<?php
session_start();
$currentrow = $_GET['jsvar'];
echo "Current Row = $currentrow";
$_SESSION['currentrow'] = $currentrow;
echo "Session Currentrow =".$_SESSION['currentrow'];
?>
打印按钮.php
<div id="button-reload">
<?php echo print_wp_cart_button_for_product($products[$_SESSION['currentrow']]["Product"], $products[$_SESSION['currentrow']]["Price"]); ?>
</div>