0

したがって、基本的には、リンクをクリックしたときに、ページを更新せずに MySQL クエリの$limit変数を 10 増やす必要があります。似たような質問がたくさんあることは知っていますが、うまくいきませんでした。

index.php

<?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>

javascript.js

$('#more').click(function(){
    //Now here some jQuery / AJAX that changes the PHP $limit variable?
});

これは何らかの方法で可能ですか?Javascript がクライアント側にあり、PHP がサーバー側にあり、MySQL が最新であるため、クエリ内の変数が機能することがわかっています。タイトルは「jQueryでPHP変数を変更する方法」でもかまいませんが、それが不可能な場合は、クエリを動的に変更するための別のソリューションが本当に必要です(おそらく更新しても)。

ありがとう :)

4

3 に答える 3

2

学ぶことがたくさんあります!

最初に AJAX を調べます (まだわからない場合は jQuery を含む)。両方を使用すると、「動的な」呼び出しを実行したり、Web ページのコンテンツを更新したりできます (更新なし)。次に、PHP 'mysql_real_escape_string' と PDO を調べて、データベースとサーバーのセキュリティを強化するための "SQL インジェクション" とは何かを理解してください。

于 2013-09-25T13:16:26.857 に答える
1

私はついにそれを修正しました、助けてくれてありがとう!:)

index.php

<?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>

javascript.js

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();
于 2013-10-01T16:13:54.610 に答える
0

ajax (および良い仕事のために JSON) を使用する必要があります。ここにコード例があります。

http://www.lennu.net/2012/06/25/jquery-ajax-example-with-json-response http://www.jquery4u.com/json/ajaxjquery-getjson-simple

于 2013-09-25T13:10:25.593 に答える