0

本质上,我试图捕获 HTML 下拉菜单的值并使用用户选择的行调用 php 函数(即 print_wp_cart_button_for_product)。我创建了一个名为 onchange 的 JQuery 函数,但遇到了几个问题。通过使用警报,我确定该函数已被调用并且该值存储在 currentrow 中。此外,通过使用 firefox Web 控制台,我知道 order.php 是使用适当的参数调用的。本来我用的是ajax成功方法,但是函数没有被调用,所以我改用了complete方法,至少解决了第一个问题。我正在处理的第二个问题涉及将变量 currentrow 存储在 test 的 innerHTML 中。当我将 $('#test').html(currentrow) 更改为 $('#test').html("Complete" )字符串被输出到屏幕上,正如我所期望的那样,但我无法使用当前行的值动态地这样做。我发现的最后一个问题涉及将测试 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"]); ?>

订单.php

<?php
$rownum= $_GET['rownum'];
echo "Row number = $rownum";
?>
4

2 回答 2

0

这是一段代码,它将向 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;

我希望这对你有帮助。如果您需要任何其他帮助,或者如果我误解了某些内容,请告诉我,我很乐意提供帮助。

于 2012-12-31T05:12:18.370 回答
0

看起来你<div id="test"></div>真的应该<input type="hidden" id="test" name="test"/>在一个<form>

使用某种形式的元素是您可以在提交时将值本地传递回服务器的唯一方法。

在任何情况下,HTML 之后的内联 PHP 代码只会在提交表单后工作。

于 2012-12-31T04:24:35.617 回答