从PHP到Javascript获取$_POST,并将其传递给另一个PHP
Get $_POST from PHP to Javascript and pass it to another php
我构建了一个具有无限滚动的搜索功能。如何将搜索字符串从搜索页面获取到查询数据库的滚动页面。
PHP:
search.php
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style/css/scroll.css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<link href="css/search.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="search">
<form action="search" method="post">
<input type="text" name="search" id="search" autocomplete="off">
<button type="submit" class="btn btn-primary">Search</button>
</form>
</div>
<img id='loading' src='img/loading.gif'>
<div id="demoajax" cellspacing="0">
</div>
</body>
<script type="text/javascript" src="js/infinitescroll/search.js"></script>
scroll.php
<?php
include('db.php');
$searchstring = $_POST['search'];
if(isset($_REQUEST['actionfunction']) && $_REQUEST['actionfunction']!=''){
$actionfunction = $_REQUEST['actionfunction'];
call_user_func($actionfunction,$_REQUEST,$con,$limit);
}
function showData($data,$con,$limit){
$page = $data['page'];
if($page==1){
$start = 0;
}
else{
$start = ($page-1)*$limit;
}
$sql = "SELECT fm_product.p_name, fm_product.p_descp, fm_product.p_id, fm_product.p_price, fm_product.p_discount, fm_product.p_img, fm_member.member_display_name, fm_product.p_member_id, fm_package.package_name, fm_package.package_id FROM fm_member LEFT JOIN fm_product ON fm_member.member_id = fm_product.p_member_id LEFT JOIN fm_package ON fm_member.package_id = fm_package.package_id order by p_created_date desc limit $start,$limit";
$str='';
$data = $con->query($sql);
if($data!=null && $data->num_rows>0) {
while( $row = $data->fetch_array(MYSQLI_ASSOC)){
if($row['package_id']=='1'){
$package = "No Package";
} else {
$package = "<form class='form-item'><input name='product_code' type='hidden' value='".$row['p_id']."'><button type='submit'>Add to Cart</button></input></form>";
}
$id = $row['p_id'];
$str.="<div style=align: center class='data-container'><a href=item?id = $id><img src=upload/".$row['p_img']." width=300px style=max-width:100%; height: auto; vertical-align: middle></a><p>By ".$row['member_display_name']."</p><p>Product Name : ".$row['p_name']."</p><p>Price : ".$row['p_price']."</p><p>Discount : ".$row['p_discount']."</p><p>Description : ".$row['p_descp']."</p><p>Package ".$_POST['search']." : ".$row['package_name']."</p><p>".$package."</p></div>";
}
$str.="<input type='hidden' class='nextpage' value='".($page+1)."'><input type='hidden' class='isload' value='true'>";
} else {
$str .= "<input type='hidden' class='isload' value='false'><p>Finished</p>";
}
echo $str;
}
?>
Javascript:
search.js
var ajax_arry=[];
var ajax_index =0;
var sctp = 100;
$(function(){
$('#loading').show();
$.ajax({
url:"scroll.php",
type:"POST",
data:"actionfunction=showData&page=1",
cache: false,
success: function(response){
$('#loading').hide();
$('#demoajax').html(response);
}
});
$(window).scroll(function(){
var height = $('#demoajax').height();
var scroll_top = $(this).scrollTop();
if(ajax_arry.length>0){
$('#loading').hide();
for(var i=0;i<ajax_arry.length;i++){
ajax_arry[i].abort();
}
}
var page = $('#demoajax').find('.nextpage').val();
var isload = $('#demoajax').find('.isload').val();
if ((($(window).scrollTop()+document.body.clientHeight)==$(window).height()) && isload=='true'){
$('#loading').show();
var ajaxreq = $.ajax({
url:"scroll.php",
type:"POST",
data:"actionfunction=showData&page="+page,
cache: false,
success: function(response){
$('#demoajax').find('.nextpage').remove();
$('#demoajax').find('.isload').remove();
$('#loading').hide();
$('#demoajax').append(response);
}
});
ajax_arry[ajax_index++]= ajaxreq;
}
return false;
if($(window).scrollTop() == $(window).height()) {
alert("bottom!");
}
});
});
我想在这个查询中将$_POST['search']
从search.php
转换为scroll.php
,以将其替换为WHERE
。
$sql = "SELECT ... FROM ... LEFT JOIN ... ON ... LEFT JOIN ... ON ... WHERE p_name LIKE '%$_POST['search']' ORDER BY ... LIMIT ..."
非常感谢。
<form action="search" method="post">
这会重定向到您没有的/search
页面。您有/search.php
和/scroll.php
。我认为你应该把scroll.php
作为动作,你就会得到你的结果。
<form action="scroll.php" method="post">
编辑:
我似乎误解了密码。scroll.php
是其中的API端点。然后动作仍然是search.php
,但是,为了获得提交的值,你可以一石二鸟。
更新表单HTML(您不需要操作,也不需要表单,但让我们保留它):
<form action="" method="post"> <input type="text" name="search" id="search" autocomplete="off"> <button type="button" id="do_search" class="btn btn-primary">Search</button> </form>
在你的JS中,让函数被搜索触发:
jQuery(document).ready(function($) { $("#do_search").on("click", function() { var searchTerm = $("#search").val(); //this is where you do the AJAX stuff. You can use searchTerm variable. }); });
相关文章:
- 通过另一个php应用程序将我的项目推送到Github存储库中
- 如何将JavaScript变量的数据传递到另一个php页面
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- 将php页面URL中的变量传递给JavaScript和另一个php
- 如何使用javascript/jquery将变量从一个PHP文件传递到另一个PHP文件
- 用PHP读取另一个网站的源代码,并将其作为字符串提供给JavaScript
- 如何使用AJAX和JSON从一个页面抓取PHP变量到另一个页面
- 通过AJAX将从AJAX获取的值发送到另一个PHP文件
- 使用 Ajax 将 Javascript 变量提交到另一个 PHP 文件
- 将Php中的Javascript变量回显到另一个页面
- 从 PHP 表中选择值并将其传递给另一个 PHP 页面
- 如何通过选择下拉列表中的选项从另一个 php 文件中获取数据
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 从JS到PHP;另一个CORS问题(似乎是)
- 将值从一个 Php 文件传递到另一个 Php 文件
- 在 PHP 中将变量从一个页面导入到另一个页面
- 如何多次将PHP变量从一个文件传递到另一个文件
- php中的mysql查询不起作用,但它在另一个php文件中起作用
- 使用php使用href链接将输入的文本框值传递到另一个页面
- 在PHP中将下拉选择列表的内容从一个表单传递到另一个表单