admin管理员组

文章数量:1431696

I am trying to use jQuery's ajax to call a php script onload. This script will return xml from a url web service, parse through it, and then display bits and pieces of it into a div tag when the page loads (onload). I'm okay with php when it es to using forms, but getting php scripts to run onload is not working for me. Could someone please look through my code and give me your advice? Thanks in advance.

HTML:

<!doctype html>
<html>
  <head>

    <title>Word of the Day</title>

    <script src=".9.1/jquery.min.js"></script>
    <script src="code.js"></script>

  </head>
<body>

<h3>Word of the Day: </h3>
<div id="word_day"></div>

</body>
</html>

JavaScript:

$(document).ready(function() {

  $(window).load(function() {


    $.ajax({
      post: "GET",
      url: "word_day.php"
    }).done(function() {
      alert(this.responseText);
    }).fail(function() {
      alert(this.responseText);
    });


  });

});

I did not add my PHP code since I was pretty sure that it wasn't the cause of my frustration.

I am trying to use jQuery's ajax to call a php script onload. This script will return xml from a url web service, parse through it, and then display bits and pieces of it into a div tag when the page loads (onload). I'm okay with php when it es to using forms, but getting php scripts to run onload is not working for me. Could someone please look through my code and give me your advice? Thanks in advance.

HTML:

<!doctype html>
<html>
  <head>

    <title>Word of the Day</title>

    <script src="http://ajax.googleapis./ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="code.js"></script>

  </head>
<body>

<h3>Word of the Day: </h3>
<div id="word_day"></div>

</body>
</html>

JavaScript:

$(document).ready(function() {

  $(window).load(function() {


    $.ajax({
      post: "GET",
      url: "word_day.php"
    }).done(function() {
      alert(this.responseText);
    }).fail(function() {
      alert(this.responseText);
    });


  });

});

I did not add my PHP code since I was pretty sure that it wasn't the cause of my frustration.

Share Improve this question asked Feb 14, 2013 at 1:07 JaPerk14JaPerk14 1,6643 gold badges26 silver badges33 bronze badges 6
  • 1 Are the done or fail events being triggered? – Taz Commented Feb 14, 2013 at 1:08
  • The "done" event was being triggered if I replace "this.responseText" with strings like successful or failure, but entering "this.responseText" produces undefined. – JaPerk14 Commented Feb 14, 2013 at 1:10
  • does word_day.php exist in your web root? – kufudo Commented Feb 14, 2013 at 1:12
  • yes. All of these files exist & are placed within the same folder. – JaPerk14 Commented Feb 14, 2013 at 1:12
  • have you placed a breakpoint in your browser debugger to check what variables are accessible in both the .done and .fail? – Hugo Dozois Commented Feb 14, 2013 at 1:14
 |  Show 1 more ment

1 Answer 1

Reset to default 2

You don't need those two handlers, just one:

$(document).ready(function() 
{
    $.ajax(
    {
        post: "GET",
        url: "word_day.php"
    }).done(function() 
    {
        alert(this.responseText);
    }).fail(function() 
    {
        alert(this.responseText);
    });

});

As you had it you were trying to create one handler when the handler fired which was never going to work.

Edit:

Your done/fail part should look like:

}).done(function(data) 
{
    alert(data);
}).fail(function(jqXHR, textStatus, errorThrown) 
{
    alert(textStatus);
});

本文标签: javascriptjQuery calling php script onloadStack Overflow