首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ajax调用发送时如何使用PHP中的数组获取数据

在ajax调用发送时如何使用PHP中的数组获取数据
EN

Stack Overflow用户
提问于 2016-11-30 02:21:29
回答 2查看 76关注 0票数 0

我在php中创建了一个简单的搜索函数。当我不对该脚本使用ajax时,它就可以工作了。但是当我使用ajax时,我的内爆函数就消失了。

这是我的密码。

代码语言:javascript
运行
复制
$searchtag = filter_var($_GET['search'], FILTER_SANITIZE_STRING);
$searchtagrlce = str_replace("+", " ", $searchtag);
代码语言:javascript
运行
复制
$searchTermsis = explode(' ', $searchtagrlce);

    $searchTermBitsis = array();
    foreach ($searchTermsis as $terms) {
        $terms = trim($terms);
        if (!empty($terms)) {
            $searchTermBitsis[] = "tbale_row1 LIKE '%$terms%' OR tbale_row12 LIKE '%$terms%' OR tbale_row13 LIKE '%$terms%'";

        }
    }




     $getdataquerystores = "SELECT `tbale_row1`, `tbale_row2`, `tbale_row3`, `tbale_row4`, `tbale_row5`, `tbale_row6` FROM `tablename` WHERE ".implode(' AND ', $searchTermBitsis). " ORDER BY tbale_row1 DESC LIMIT $limit, 10";
      $getdataquerystoress = mysqli_query($connection, $getdataquerystores);

当我在没有ajax的情况下回显或打印上述代码时,我得到以下内容

代码语言:javascript
运行
复制
SELECT `tbale_row1`, `tbale_row2`, `tbale_row3`, `tbale_row4`, `tbale_row5`, `tbale_row5` FROM `tablename` WHERE tbale_row1 LIKE '%a%' OR tbale_row2 LIKE '%a%' OR tbale_row3 LIKE '%a%' ORDER BY tbale_row1 DESC LIMIT 0, 10

但是当我使用ajax并打印上面相同的代码时,我得到了这个结果(在函数数据消失之后)

代码语言:javascript
运行
复制
SELECT `tbale_row1`, `tbale_row2`, `tbale_row3`, `Logo_croped_554`, `tbale_row5, `tbale_row6` FROM `tablename` WHERE ORDER BY tbale_row1 DESC LIMIT 10, 10

这里是我的ajax代码

代码语言:javascript
运行
复制
$(window).scroll(function ()
    {
	  if($(document).height() <= $(window).scrollTop() + $(window).height())
	  {
		loadmore();
	  }
    });

    function loadmore()
    {
      var val = $("#row_no").val();
      $.ajax({
      type: 'post',
      url: '/myproject/data/alldata.php',
      data: {
       getresult:val
      },
	  beforeSend:function(){
		   $(".loading-data").fadeIn("slow");
	  },
	  
	  uploadProgress:function(){
		  
		  $(".loading-data").fadeIn("slow");
	  },
      success: function (response) {
	  var content = document.getElementById("dsdplasdy_sdtres");
      content.innerHTML = content.innerHTML+response;
	
      
      document.getElementById("row_no").value = Number(val)+10;
	  },
	  complete:function() {
		   $(".loading-data").fadeOut("slow");
		  
	  }
	  
      });
    }

这里是我从隐藏的领域中得到的价值。

代码语言:javascript
运行
复制
 <input type="hidden" id="row_no" value="10" />

请任何前[ert]可以帮助我。任何帮助都很感激。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-30 02:37:52

若要在互联网上传递数组或任何其他相关数据,则需要在发送端对数据进行适当的序列化和编码,并在接收端对数据进行非序列化和解码。有许多方法可以对数据进行序列化,但是PHP直接支持的缺省值是application/x-www-form-urlencoded或多部分/表单-数据,如果使用POST请求方法,这些数据将填充$_POST超全局变量。数据还可以作为URL参数传递,其中URL的查询部分是“application/x form-urlencoded”编码的,并在PHP中填充$_GET超全局变量。

注意:使用$_POST或$_GET超级全局来获取数据。如果您有注册表全局,您应该关闭它,它不再支持从5.4版http://php.net/manual/en/security.globals.php

对于您的具体情况,您不会从AJAX请求中传递搜索参数。

代码语言:javascript
运行
复制
url: '/myproject/data/alldata.php',

应该是

代码语言:javascript
运行
复制
url: '/myproject/data/alldata.php?search='+encodeURI(searchTerms),

您需要使用搜索项填充searchTerms变量,或者用实际的搜索条件替换searchTerms。如果您不知道如何获得搜索条件,请参阅How to retrieve GET parameters from javascript?

票数 0
EN

Stack Overflow用户

发布于 2016-11-30 04:05:53

谢谢以上回答的每一个人。我一直在想这个。正如我所提到的,它与ajax不一样,我是关于php在通过ajax时如何忘记变量数据的。在那里,我使用了隐藏字段来存储数据,然后使用ajax将其发送到sript。

代码语言:javascript
运行
复制
<input type = "hidden" value= "<?php search parameter ?>"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40879214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档