本质上,我正在尝试捕获HTML下拉菜单的值,并使用用户选择的行调用PHP函数(即print_wp_cart_button_for_product)。我创建了一个称为Onchange的jQuery函数,但遇到了几个问题。通过使用警报,我确定该功能被调用,并且该值存储在Currentrow中。此外,通过使用Firefox Web控制台,我知道order.php是带有适当参数的。最初,我使用的是Ajax成功方法,但没有调用该函数,因此我将其切换为完整的方法,该方法至少解决了拳头问题。我要处理的第二个问题涉及将可变电流存储在InnerHTML测试中。当我更改$('#test')时。html(currentrow)为$('#test')。html("完整")字符串被输出到屏幕上,但是我一直无法用电流的值动态地进行。我发现的最后一个问题涉及将测试DIV标签的值保存到PHP变量中。我尝试使用$ _get捕获该值并随后调用我的PHP功能,但没有运气。
<div id="test">
</div>
<script type = "text/javascript">
function productchange()
{
var currentrow = $('#productcategory1').val();
//alert(currentrow);
$.ajax({
type: "GET",
url: "http://www.example.com/wp-content/themes/themeX/order.php",
data: {'rownum': currentrow},
complete: function(currentrow){
//alert('COMPLETE');
$('#test').html(currentrow);
//$('#test').html("Complete");
}});
return false;
}
</script>
<?php $rownum = $_GET['test']; ?>
<?php echo print_wp_cart_button_for_product($products[$rownum]["Product"], $products[$rownum]["Price"]); ?>
order.php
<?php
$rownum= $_GET['rownum'];
echo "Row number = $rownum";
?>
看来您的<div id="test"></div>
确实应该是<input type="hidden" id="test" name="test"/>
中的<form>
使用某种形式的元素是您将值本地传递给服务器的唯一方法。
在任何情况下,您的HTML之后的内联PHP代码只有在提交表格后才起作用。
这是一个代码段,将隐藏的表单字段提交给PHP页面,使您可以将值存储在PHP变量中。首先,在带有JavaScript的主页上执行类似的操作。
<form method="post" action="storevar.php">
<input type="hidden" name="jsvar" id="jsvar" value="" />
</form>
然后,在您计算出变量应在JavaScript中的值之后,使用JavaScript/jQuery更新此隐藏表单字段的值:
function productchange() {
var currentrow = $('#productcategory1').val();
$("#jsvar").val(currentrow);
$.post('storevar.php', {jsvar: currentrow}, function(data) {
// do any additional coding with the result if need be
}
});
return false;
}
然后,您可以在storevar.php中执行类似的操作。请注意,我将其存储在会话中,以便如果需要的话也可以在其他页面中检索。
session_start();
$currentrow = $_POST['jsvar'];
$_SESSION['currentrow'] = $currentrow;
我希望对您有帮助。如果您需要其他帮助,或者我误解了某些东西,请告诉我,我很乐意提供帮助。