所以基本上我想要的是当你点击链接时,我的MySQL查询中的 $ limit 变量应该增加10而不刷新页面。我知道有很多类似的问题,但我无法解决。
<?php
$limit = 10;
mysql_connect("localhost", "root", "");
mysql_select_db("database");
$query = mysql_query("SELECT * FROM news ORDER BY news_id DESC LIMIT $limit");
?>
<a href="#" id="more">Show more...</a>
$('#more').click(function(){
//Now here some jQuery / AJAX that changes the PHP $limit variable?
});
这有可能吗?我知道Javascript在客户端和服务器端的PHP上,而我的MySQL是最新的,因此查询中的变量可以工作。标题可能是'如何使用jQuery更改PHP变量',但如果这不可能,我真的需要另一个解决方案来动态更改查询(甚至可能更新)。
谢谢:)
答案 0 :(得分:2)
你有很多东西要学习配偶!
首先看看AJAX(包括jQuery,如果你还不知道)。通过这两种方式,您可以对网页上的内容进行“动态”调用/更新(无需刷新)。再看看PHP的'mysql_real_escape_string'和PDO,并了解“SQL注入”是为了更好地保护您的数据库和服务器。
答案 1 :(得分:1)
我终于修好了,谢谢你的帮助! :)
<?php
$limit = $_POST['limit'];
include('/connect_db.php');
$sql = "SELECT * FROM news ORDER BY news_id DESC LIMIT $limit";
$sth = $dbh->prepare($sql);
$sth->execute();
?>
<a href="#" id="more">Show more...</a>
var limit = 10;
$('#more').click(function() {
limit += 10;
ajax();
});
var news = document.getElementById('news');
function ajax() {
$.ajax({
url: 'index.php',
type: "POST",
data: {limit: limit},
success: function(data){
news.innerHTML = data;
},
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
}
ajax();
答案 2 :(得分:0)
你需要使用ajax(以及JSON以获得一份好工作),你可以在这里找到代码示例:
http://www.lennu.net/2012/06/25/jquery-ajax-example-with-json-response http://www.jquery4u.com/json/ajaxjquery-getjson-simple