如何使用PHP PDO在Ajax中传递两个变量

时间:2017-05-24 06:26:59

标签: php ajax pdo

的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> &nbsp;<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。

4 个答案:

答案 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``一样。