使用jQuery将变量值输出到InnerHTML中,然后将其存储在PHP变量中



本质上,我正在尝试捕获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;

我希望对您有帮助。如果您需要其他帮助,或者我误解了某些东西,请告诉我,我很乐意提供帮助。

最新更新