0

テキストファイルから特定のフレーズを読み取り、Webページにランダムに表示する単純なPHPスクリプトがあります。別のランダムなフレーズを表示するには、現在、ページ全体を更新する必要があります。私の質問は-フレーズを含むページの領域だけを更新して、ボタンがクリックされるたびに新しいフレーズを表示する方法はありますか?現在、以下のPHPは、CSSを使用してスタイル設定されたh1タグに含まれています。次に、その下にコメントを含めて、ページを更新して別のランダムなフレーズを表示するようにユーザーに指示します。理想的には、ユーザーが毎回ページ全体を更新する必要がないように、このコメントをボタンに変更したいと思います。

ランダムなフレーズを表示するために使用される単純なPHPは次のとおりです。

$str = file_get_contents('words.txt'); //Take the contents from the file to the variable
$result = explode(',',$str); //Split it by ','
echo $result[array_rand($result)]; //Return a random entry from the array.

どんな助けでも大歓迎です。

乾杯、トム

4

3 に答える 3

1

私が考えることができる2つの方法:

  1. 更新するたびにそれらの束をロードします。たとえば、10としましょう。ただし、そのうちの1つだけを表示します。ボタンをクリックすると、他の9を循環します。
  2. AJAXを使用して、ボタンがクリックされるたびに実際に新しいフレーズをロードします。
于 2012-06-08T15:20:17.697 に答える
1

例私はPHP/AJXの学習を開始しましたが、 jQueryの使用からの抜粋です...

httpリクエストを受信し、データベースからデータをフェッチするphpスクリプトを作成します

//--------------------------------------------------------------------------
// Example php script for fetching data from mysql database
//--------------------------------------------------------------------------
$host = "localhost";
$user = "root";
$pass = "root";

$databaseName = "ajax01";
$tableName = "variables";

//--------------------------------------------------------------------------
// 1) Connect to mysql database
//--------------------------------------------------------------------------
include 'DB.php';
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);

//--------------------------------------------------------------------------
// 2) Query database for data
//--------------------------------------------------------------------------
$result = mysql_query("SELECT * FROM $tableName");          //query
$array = mysql_fetch_row($result);                          //fetch result    

//--------------------------------------------------------------------------
// 3) echo result as json 
//--------------------------------------------------------------------------
  echo json_encode($array);

クライアントの例

出力:

この要素はjqueryによってアクセスされ、このテキストは置き換えられます

<script id="source" language="javascript" type="text/javascript">

$(function () 
{
  //-----------------------------------------------------------------------
  // 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
  //-----------------------------------------------------------------------
  $.ajax({                                      
    url: 'api.php',                  //the script to call to get data          
    data: "",                        //you can insert url argumnets here to pass to api.php
                                     //for example "id=5&parent=6"
    dataType: 'json',                //data format      
    success: function(data)          //on recieve of reply
    {
      var id = data[0];              //get id
      var vname = data[1];           //get name
      //--------------------------------------------------------------------
      // 3) Update html content
      //--------------------------------------------------------------------
      $('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname); //Set output element html
      //recommend reading up on jquery selectors they are awesome 
      // http://api.jquery.com/category/selectors/
    } 
  });
}); 

</script>
</body>

于 2012-06-08T15:27:07.217 に答える
0

jQueryを使用すると、これは非常に簡単です。

html:

<div id="random"></div>
<input type="button" id="update" />

javascript:

<script>
$("#update").on("click", function() {
    $.ajax({
        url: "/randomwords.php",
        success: function(data) { $("#random").html(data); }
    });
});
</script>

randomwords.php上からのスニペットで、他には何もありません。

于 2012-06-08T15:26:19.923 に答える