0

诚然,我对 Ajax 完全一无所知,但它似乎是完成任务的最佳方式。在经历了几个教程之后,我有了基本的了解,但仍然对我的问题感到迷茫。本质上,我试图捕获 HTML 下拉菜单的值,并使用用户选择的行值调用购物车函数。每个行值对应于 php 数组中的一个产品。

出现在我的头文件中的函数(注意:注释掉的部分是使用 onreadystatechange 的失败尝试):

<script type="text/javascript">

function productchange(data){

var xmlhttp;

if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

  //xmlhttp.onreadystatechange=function()
  //{
  //if (xmlhttp.readyState==4 && xmlhttp.status==200)
  // {
  //document.getElementById("test").innerHTML=xmlhttp.responseText;
  //document.getElementById("test").innerHTML= data;
  //  }
  //}

  var URL = "http://www.example.com/wp-content/themes/themeX/order.php" + "?rownum=" + data;

  xmlhttp.open("GET",URL,false);
  xmlhttp.send(); 

}
//-->
</script>

HTML 表:(div 标签再次尝试使用 innerHTML 失败。我能够在屏幕上获取值,但仍然无法使用 $_GET 捕获它以在我的函数调用中使用)

<TR>
   <TD>
      <select id="productcategory1" name="productcategory1" onchange="productchange(this.value)">
    <option value="$">--Please Select--</option>
    <option value="1">Product # 1 - $1.99</option>
    <option value="2">Product # 2 - $1.99</option>
    <option value="3">Product # 3 - $9.99</option>
    <option value="4">Product # 4 - $9.99</option>
  </select>
  </TD>
  <TD>    
  <div id="test">
  </div>
  <?php echo print_wp_cart_button_for_product($products[$rownum]["Product"], $products[$rownum]["Price"]); ?>
  </TD>
  </TR>

订单.php:

<?php
global var $rownum;
$rownum = $_GET['rownum'];
?>
4

1 回答 1

0

order.php真的没有做任何事情,并且没有向客户端回显任何响应。AJAX 调用实际上应该做什么?(请记住,PHP 脚本在初始页面呈现时执行一次,因此 AJAX 调用只是一个完全独立的 Web 请求,然后需要返回一些客户端将在 onreadystatechange 函数中处理的数据。尝试添加回显当您取消注释 JS 处理程序时order.php,您应该会在 div 中看到它。

于 2012-12-28T05:21:33.487 回答