7

我正在尝试编写一个getproduct.php?id=xxx单击时将调用的函数。我可以让该innerHTML部分出现,但我如何也调用php实际工作的页面?

var id = id;
document.getElementById("digital_download").innerHTML = 
    "Downloading...Please be patient. The process can take a few minutes."; 
url = getproduct.php?id=id;
4

6 回答 6

15

您可以使用以下行在 div 中调用或加载 php 页面:-

$("#content_div").load("ajax/page_url.php");

“ajax/page_url.php”是 php 文件的相对路径。

所以在这里你也可以用外部网址替换它。

如果我错了,请分享你的知识。

于 2013-07-08T05:01:10.547 回答
9

例如,您可以使用 jQuery 来实现。

var id = 1;
$('#digital_download').html('Downloading...'); // Show "Downloading..."
// Do an ajax request
$.ajax({
  url: "getproduct.php?id="+id
}).done(function(data) { // data what is sent back by the php page
  $('#digital_download').html(data); // display data
});
于 2013-07-08T04:58:44.160 回答
2

您可以通过多种方式将页面加载到一个部门中。

方法是

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('digital_download').innerHTML=xmlhttp.responseText;
    }
}
   xmlhttp.open("GET", 'getproduct.php?id=' + id,true);
   xmlhttp.send();
}

这是一种没有外部参考的典型方法。

如果您参考,那么有 5 种方法可以使用 jQuery 进行 ajax 调用


  • load():将一段 html 加载到容器 DOM 中。
  • jQuery.getJSON():使用 GET 方法加载 JSON。
  • jQuery.getScript():加载一个 JavaScript。
  • jQuery.get():如果您想进行 GET 调用并广泛使用响应,请使用它。
  • jQuery.post():如果您想进行 POST 调用并且不想将响应加载到某些容器 DOM,请使用此方法。
  • jQuery.ajax():如果您需要在 XHR 失败时执行某些操作,或者您需要动态指定 ajax 选项(例如 cache: true),请使用此选项。

于 2013-07-08T07:54:42.407 回答
1

编辑:原始问题没有引用 jQuery。将这个答案留在这里,因为其他人可能会觉得它很有用。

以下是在没有 jQuery 或 Prototype 或其他 JS 库的情况下使用 XHR 对象处理 ajax 请求的方法。

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('digital_download').innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", 'getproduct.php?id=' + id,true);
    xmlhttp.send();
}
于 2013-07-08T05:00:19.133 回答
0

您可以使用查询获取或发布请求

$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});

例子

于 2013-07-08T05:02:26.563 回答
0

嗨,您可以调用以下函数来执行此操作,它会在成功时从服务器加载数据,您也可以创建失败函数

 function setValue(Id) {
 document.getElementById("digital_download").innerHTML = 
"Downloading...Please be patient. The process can take a few minutes.";
 var data1 = {
        message: Id,
    };

    $.ajax({
      data: data1,
      type: 'GET',
      url: "http://urltoscript/index.php",
     cache: false,
        dataType: "json",
        crossDomain: true,
        success: function(data) {
        console.log("Response for cancel is: " + data);

     document.getElementById("digital_download").innerHTML =  data

      }
    });

 }
于 2017-03-30T10:37:45.497 回答