的index.php
<ul id="remove_row">
<button type="button" name="btn_more" data-vid="<?php echo $pro_id; ?>" id="btn_more" class="btn btn-success form-control">more</button>
</ul>
load_data.php
sleep(1);
require_once("config.php");
$query = $connect->prepare("SELECT * FROM county WHERE sof_similar > ".$_POST['last_video_id']." LIMIT 2");
$query->execute();
while ($row_posts = $query->fetch(PDO::FETCH_ASSOC))
{
$pro_id = $row_posts['sof_id'];
$pro_similar = $row_posts['sof_similar'];
echo " <li>
<div class='alter'>
<h1><hr /><img src='$pro_fimagelink' alt=''> <a href='$pro_downloadpage'><strong>$pro_name</strong></a> <a rel='nofollow' href='?q=$pro_name' target='_self'><small></small></a> <br />
<span>$pro_shortdescription<br />
<div class='license'>$pro_license</div>
<li id="remove_row">
<button type="button" name="btn_more" data-vid=". $pro_similar ." id="btn_more" class="btn btn-success form-control">more</button>
</li>
";
Ajax脚本:
<script>
$(document).ready(function(){
$(document).on('click', '#btn_more', function(){
var last_video_id = $(this).data("vid");
$('#btn_more').html("Loading...");
$.ajax({
url:"/load_data.php",
method:"POST",
data:{last_video_id:last_video_id},
dataType:"text",
success:function(data)
{
if(data != '')
{
$('#remove_row').remove();
$('#load_data_table').append(data);
}
else
{
$('#btn_more').html("No Data");
}
}
});
});
});
使用此代码,我可以传递单个变量来获得结果,但我需要2个变量来使用AJAX获得结果。我有来自此博客的基本代码:http://www.webslesson.info/2016/02/how-to-load-more-data-using-ajax-jquery.html
感谢webslesson.info让您有机会了解AJAX。
答案 0 :(得分:0)
您可以在ajax()
数据中传递任意数量的变量,例如:
data:{
key1: value1,
key2: value2,
key3: value3,
and so on
},
答案 1 :(得分:0)
这样做:
data:{last_video_id:last_video_id,your_second_variable:your_second_variable},
答案 2 :(得分:0)
<强>路-1:强>
dataType : "json",
contentType: "application/json; charset=utf-8",
data:{
key1: value1,
key2: value2,
key3: value3,
..........
},
Way-2:您可以通过连接设置数据,如
data: 'value1='+val1+'&value2='+val2,
答案 3 :(得分:0)
让我们按文件查看。
在文件load.php
中,您似乎正在使用PDO,但错误的方式。 PDO允许您安全地转义传递给查询的变量,以避免sql injections。请记住,您应该重构当前的查询:
$query = $connect->prepare("SELECT * FROM county WHERE sof_similar > ".$_POST['last_video_id']." LIMIT 2");
到
$query = $connect->prepare("SELECT * FROM county WHERE sof_similar > LIMIT 2");
$stmt->bind_param('ii', intval($_POST['last_video_id']));
在official documentation中查看有关PDO准备语句的更多信息。
为了从ajax请求中传递更多变量,您只需向Ajax script
文件中的当前Json Object添加更多键/值对:
$.ajax({
url:"/load_data.php",
method:"POST",
data:{ last_video_id:last_video_id, key : value }, // Our new key/value pair here
dataType:"text",
success:function(data)
{
if(data != '')
{
$('#remove_row').remove();
$('#load_data_table').append(data);
}
else
{
$('#btn_more').html("No Data");
}
}
});
稍后我们可以通过读取load_data.php
全局变量来访问$_POST
中的此类数据,就像使用`last_video_id``一样。