2

我在 keyup 事件上向页面本身发送参数。

我通过 ajax 发送参数url:"http://localhost/application/views/pages/users/tags.php?tagfilter=lif",

并在 javascript 函数中获取它的值('/instruction/showtags/<?php if( isset($_GET['tagfilter']) && $_GET['tagfilter'] == "") {echo $_GET['tagfilter'];} ?> ', {

我检查了,我的控制台,它没有显示错误和警告。但我确信它要么没有发送参数,要么可能是它没有获取参数。

请告诉我,为什么我的参数没有发送?ajax代码的编写方式是否正确?

如果您无法理解我的问题,请告诉我,我会尝试以其他方式解释。

完整源代码:

标签.php

 <input placeholder="Search" id="tagfilter" name="tagfilter" type="text"/>

jQuery/ajax 函数

   <script type="text/javascript"> 
      $(document).ready(function() {    
      $('#tagfilter').keyup(function(e){
       // alert("called"); 
        $.ajax({
            url:"http://localhost/application/views/pages/users/tags.php?   
       tagfilter=lif",
            type:"get",  
            success: function(){ 

            } 
        });
    });
 });     
</script>

我的无限滚动 js 文件,包括在同一页面中

 <script>
         (function($) { 
                $.fn.scrollPagination = function(options) {

                        var settings = { 
                                nop     : 10, // The number of posts per scroll to be loaded
                                offset  : 0, // Initial offset, begins at 0 in this case
                                error   : 'No More Data To Display!', // When the user reaches the end this is the message that is
                                                            // displayed. You can change this if you want.
                                delay   : 500, // When you scroll down the posts will load after a delayed amount of time.
                                               // This is mainly for usability concerns. You can alter this as you see fit
                                scroll  : true // The main bit, if set to false posts will not load as the user scrolls. 
                                               // but will still load if the user clicks.
                        }

                         .............................
                         .............................
                         .............................

更新:

我到底想做什么?


我已经用 jquery 实现了无限滚动。当我的页面加载时,它会调用我的控制器,并从控制器获取数据并将其显示在我的视图页面中。

现在,我打算在这个页面上无限滚动搜索。我有一个文本框,我试图从这个文本框中搜索 keyup 事件。

我正在尝试这个逻辑。如果您有更好的逻辑,请与我分享,因为我长期以来一直在努力实现这一点。


4

2 回答 2

1

好的。我不知道你的结构,所以我有一些提示。

首先:您需要知道,当 PHP 是服务器端语言时,只要 JS 是客户端语言,javascript 的处理速度就会比 PHP 快得多。因此,请尝试将您的 php 数据保存在 javascript 变量中,如下所示:

var seg3 = "<?php echo $this->uri->segment(3) ?>";
$.post("/instruction/showtags/" + seg3, {...etc

然后为了您的安全,请尝试检查您是否需要所有 url 而不仅仅是其中的一部分(取决于 CI 配置),以便您的代码可以像这样出现

var seg3 = "<?php echo $this->uri->segment(3) ?>";
var myurl = "<?php echo site_url('casting/send_email'); ?>" + seg3;
$.post(myurl, {...etc

并且一定不要使用$_GET.

其次,确保您正在发送段并且它在那里。您始终可以使用 console.log()in javascript 来跟上数据并查看它是否为空。

无论您是希望它在 keyup 还是 keydown 上还是相同的。

如果您使用的是json ,请确保将其作为最后一个参数添加到您的$.post()方法中,您可以看到它的jquery api

于 2013-05-15T22:08:43.410 回答
0

您检查是否$_GET['tagfilter'] == "",并且仅当字符串为空时才打印它。所以应该是:

<?php if( isset($_GET['tagfilter']) && $_GET['tagfilter'] != "") { echo $_GET['tagfilter'];} ?>
于 2013-05-15T19:59:01.470 回答