2017-04-02 62 views
1
<html> 
<head> 
    <meta charset="utf-8"> 

    <title>Test page for Query YQL</title> 

    <link rel="stylesheet" href="http://hail2u.github.io/css/natural.css"> 

    <!--[if lt IE 9]><script src="http://hail2u.github.io/js/html5shiv.min.js"></script><![endif]--> 
</head> 
<body> 
    <h1>Test page for Query YQL</h1> 

    <div id="content"></div> 

    <input type="button" name="bt1" value="click" onclick="pesquisa()"> 

    <form name="s2"> 
    <input type="text" name="s1"> 
    </form> 

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <script src="jquery.query-yql.min.js"></script> 
    <script type="text/javascript"> 

    function pesquisa(){ 

     $(function() { 

     var t = $('#content').empty(); 
     var url= document.s2.s1.value; 
     var statement = 'select * from feed where url="'+url+'"'; 

     $.queryYQL(statement, function (data) { 
      $('<h2/>').text('Test: select * from feed').appendTo(t); 
      var r = data.query.results; 
      var ul = $('<ul/>'); 

      $.each(r.item, function() { 

      $('<li/>').append(this.title).appendTo(ul); 
      $('<li/>').append(this.link).appendTo(ul); 

      <?php 

       $titulo = "<script>document.write(titulo);</script>"; 

       $site = "<script>document.write(site);</script>"; 

       //echo $titulo; 
       //echo $site; 

      ?> 
      }); 
      ul.appendTo(t); 
     }); 
     }); 
    }; 

    </script> 
</body> 
</html> 

如何将this.titlethis.link值保存到2个不同的变量中然后将它们调用到php中,以便将数据插入到数据库中?如何保存附加到变量然后将它们转换为PHP,以便您可以将它们保存在数据库中?

这只是一个简单的YQL查询,以便对RSS源搜索。

做查询后,我希望结果保存在数据库中,但我无法找到如何做到这一点。

+0

使用ajax将数据从jquery传递给PHP,并在php脚本中执行数据库插入过程。 –

+0

我对阿贾克斯一无所知,你能给我一些指导吗? –

回答

0

首先,您必须了解您正在开发客户端 - 服务器体系结构。

这意味着:

  • 比方说,这个文件你向我们展示被称为“TestYQL.php”(因为你没有说,它的名字)。这个文件由php(服务器端)执行,它逐行读取它的内容,并从原始文件生成另一个新文件。为了教育目的,假设生成的文件被称为“GeneratedTestYQL.html”。这个文件不再有任何php代码,因为它直接是html和js flat。它对于php一无所知。所以没有PHP函数,变量,什么都没有。这最后一个文件是到达客户端的代码,代码由像Chrome,Firefox等网络浏览器执行。

在你的情况下,文件“TestYQL.php”你所有的PHP是<? Php ....?>标签里面有什么。使用php,你创建了两个变量,每个变量都有一个标签,但没有任何用途,因为它们没有以任何方式使用。因此,生成的“GeneratedTestYQL.html”文件与原始文件相同,但没有<? Php ...?>内的行。

这意味着:您在PHP中使用变量的内容可以被发送到浏览器,因为PHP,你会产生将在浏览器中执行的文件。

现在,当文件“GeneratedTestYQL.html”到达时,浏览器开始显示文件的所有内容,它产生了表单,当您单击该按钮,执行相应的功能pesquisa()和现在开始使用JavaScript(JQuery)引入提要的数据,并且第一次,这些变量“this.title”和“this.link”开始在javascript中存在。

由于在这里没有这样的东西,你可以不是从php访问这些变量。

那么,如何保存在数据库的数据?不错,常用的方法是你从浏览器想要的数据,发送到服务器,然后服务器认为如何处理这些数据做。要将数据从浏览器发送到服务器,可以通过向服务器发送GET或POST请求到一个php文件(最好是另一个文件,假设它将被称为“saveFeeds.php”)来完成。

数据可以用GET请求被发送,但因为GET意味着你想从服务器获取数据是语义上不正确。因此,要将这些数据发送到服务器,您必须从浏览器发出POST请求,这更合适。

现在有两种简单的方法可以发出POST请求。这些中的第一个也是最常见的来自浏览器中的表单,另一种方式是使用Ajax。

如何从表单中执行此操作?

目前在您的代码中,您已经放置了一个表格(称为“s2”),虽然目前不需要,但现在就离开。 如果你想通过表单发送数据,你应该做2件事情。首先也是最明显的,创建表单;其次,从互联网收到的数据(标题和Feed的链接),将它们发送到服务器。

假设您从每个网址的单个Feed获取数据,并且负责接收请求的指定文件将为“saveFeeds.php”。所以,你可以一前一后创建类似下面的形式:

<Form class = "sender" action = "saveFeeds.php" method = "post"> 
  <Input type = "hidden" name = "title" value = ""> <br> 
  <Input type = "hidden" name = "link" value = ""> <br> 
  <Input type = "submit"> 
</ Form> 

然后,你需要把表格内的饲料数据,因为,在这一刻,你无法发送任何东西。你可以添加一个功能,如:

Function appendFeedToForm (title, link) { 
  Var form = $ (". Sender"); 
  Form.title.value = title; 
  Form.link.value = value; 
} 

然后从结果的$ .each内部称其为 AppendFeedToForm(this.title, this.link);

第二种情况下,最简单的方法,使使用Ajax相同文件的请求使用JQuery快捷键:

$.post("saveFeeds.php", r.item); 

如果您对验证感兴趣,可以查看JQuery文档。关于Ajax请求的重要之处在于,您可以发送所需的所有数据,而不必强制您重新加载页面。因此,您可以按照发送方式发送尽可能多的Feed。

现在随着从客户端发送到服务器的数据,有必要处理数据的接收。目前我们将所有数据都指向文件“saveFeeds.php”,所以,现在,我们最终可以从javascript中提取内容。要访问它们,只需在该文件中,你应该检查的字段:

$ _POST ['title']  // This names are from input names of form 
$ _POST ['link']  // or properties sended through Ajax 

所以,在这里,你已经TP准备数据库的连接,并保存这些参数。目前你没有提到你正在使用哪个数据库引擎,所以,现在我会在这里缩短答案。

注:我没有给你最好的实践来解决你的问题,而是最低限度的必要。

+0

感谢Francute的帮助! –

相关问题