使用JQuery / AJAX / PHP从另一个URL中抓取并显示Web内容

时间:2014-04-25 18:12:10

标签: javascript php jquery html ajax

我需要做以下事情:

  1. 抓取粘贴到粘贴事件上的简单HTML文本框中的URL并保存到名为myURL的JavaScript变量(此代码可用)

  2. 使用AJAX将myURL变量发送到PHP页面,该页面将从URL中删除一些内容。 PHP页面(webscraper.php)将已删除的内容保存在数据库中,然后在HTML页面(文本框所在的位置)上显示已删除的内容,而无需重新加载页面。这一步是代码丢失和破坏的地方。

  3. 的index.html:

    <body>
         <input type="text" class="newslinkinput"/>
    </body>
    

    URLonpaste.js:

    $(document).ready(function () {
     $(".newslinkinput").bind('paste', function (e) {
         setTimeout(function () {
             var myURL = $(".newslinkinput").val()
             $.ajax({
                 type: "POST",
                 url: "webscraper.php",
                 data: "newslink=" + myURL.val(),
                 success: function (data) {}
             });
         }, 0);
       });
     });
    

    webscraper.php:

    <?php   
    $newslink = $_POST['newslink'];
    
    require_once('ExternalScraper.php');
    
    $result = ExternalScraper::fetch($newslink);
    
    $contentA = $result->contentA;
    $contentB = $result->contentB;
    
    include "include/database.php";
    
    $insert = mysqli_query($connect, "INSERT INTO mytable (contentA, contentB) VALUES ('$contentA', '$contentB')");
    
    mysqli_close($connect);
    
    //Somehow get $contentA and $contentB to display on index.html
    //Do all this without refreshing the page
    
    ?> 
    

1 个答案:

答案 0 :(得分:1)

试试这个:

<强>的index.html

<body>
     <input type="text" class="newslinkinput"/>
     <div id="contentA"></div>
     <div id="contentB"></div>
</body>

<强> URLonpaste.js

...
$.ajax({
    type: "POST",
    url: "webscraper.php",
    data: "newslink=" + myURL.val(),
    dataType: "json",
    success: function (data) {
        $('#contentA').html(data.contentA);
        $('#contentB').html(data.contentB);
    }
});
...

webscraper.php (追加到最后):

...
echo json_encode(array('contentA' => $contentA, 'contentB' => $contentB));