如何保存附加到变量然后将它们转换为php,以便将它们保存在数据库中?

时间:2017-04-02 01:18:48

标签: javascript php jquery

<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中,以便将数据插入数据库?

搜索rss Feed只是一个简单的YQL查询。

执行查询后,我希望将结果保存在数据库中,但我无法发现如何执行此操作。

1 个答案:

答案 0 :(得分:0)

首先,您必须了解您正在使用客户端 - 服务器架构。

这意味着:

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

在您的情况下,文件&#34; TestYQL.php&#34;你拥有的所有PHP都是<? Php ....?>标签内的内容。使用php,您可以创建2个变量,每个变量都带有一个标记,但没有任何用途,因为它们没有以任何方式使用。那么,生成的&#34; GeneratedTestYQL.html&#34; file与原始文件相同,但没有<? Php ...?>内的行。

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

现在,当文件&#34; GeneratedTestYQL.html&#34;到了,浏览器开始显示文件的所有内容,它生成表单,当你单击按钮时,执行函数 pesquisa(),现在启动javascript(JQuery)带来的数据饲料,这是第一次,这些变量&#34; this.title&#34;和&#34; this.link&#34;开始存在于javascript中。

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

那么,如何将数据保存在数据库中?通常的方法是将所需的所有数据从浏览器发送到服务器,然后服务器就会知道该如何处理这些数据。要将数据从浏览器发送到服务器,您可以通过从服务器向php文件发出GET或POST请求来执行此操作(最好是另一个文件,让我们说它将被调用&#34; saveFeeds.php&#34 ;)

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

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

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

目前在您的代码中,您已经放置了一个表单(称为&#34; s2&#34;),虽然目前没有必要,但现在就离开。 如果您想通过表单发送数据,您应该做两件事。首先,最明显的是,创建表单;第二,从互联网接收的数据(标题和饲料链接),将它们发送到服务器。

假设您从每个网址的单个Feed中获取数据,并且负责接收请求的指定文件将是&#34; saveFeeds.php&#34;。因此,您可以在上一个表单之后创建如下表单:

<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>

然后您需要将Feed数据放在表单中,因为此时您无法发送任何内容。您可以添加如下函数:

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。

现在,从客户端向服务器发送数据,必须处理数据的接收。目前我们将所有数据都指向文件&#34; saveFeeds.php&#34;,所以,现在,最后我们可以把来自javascript的内容。要访问它们,只需在该文件中,您应该检查字段:

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

因此,在这里,您必须准备与数据库的连接并保存这些参数。目前你没有提到你正在使用哪个数据库引擎,所以,在这一刻,我将在这里缩短答案。

注意:我没有给你解决问题的最佳做法,而是最低限度的必要。