1

これが私がhttp://geheimprojekt.nomachines.org/で達成したいことです

  1. ユーザーが「Nochmal!」をクリックします ボタン(新しい単語の組み合わせが生成されます)
  2. クリックをMySQLデータベースに送信し(ページをリロードせずに)、「クリックされた」行を1つ増やします
  3. 「これまでにn個の単語の組み合わせが生成されました」という段落のテキストを更新します。

これは、AJAXを使用する最初の試みです。私はjQueryの知識を持っていますが、ドットを接続できないようです。

SQL

CREATE TABLE IF NOT EXISTS `sggcount` (
  `counter` bigint(20) NOT NULL DEFAULT '2'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;

--
-- Dumping data for table `sggcount`
--

INSERT INTO `sggcount` (`counter`) VALUES
(2);
4

3 に答える 3

2

これを機能させるのは非常に簡単です。クーティングを配置する将来のdiv用にいくつかのhtmlが必要です。

<div id="counting"></counting>

次に、generator()関数の最後に次を追加します。

function generator(){
    /*your code here...*/    
    var element = document.createElement("div");
    element.setAttribute("id", "result");
    element.appendChild(document.createTextNode(name));
    document.getElementById("placeholder").appendChild(element);
    /*the ajax code here*/
    var url='urltophpfile/phpfile.php';
    $.get(url,function(data){
        $('#counting').html(data+' Word combinations have been generated so far.');
    });
 }

これで、phpfile.phpファイルに、カウントをインクリメントするコードが必要になります。今私もそれを手伝うことができれば、あなたはこの部分を行う方法を知っていると思います。ここにサンプルコードを追加して、アイデアが得られるようにします。

<?php
  mysql_connect('localhost', 'db-sgg', 'password') or die('Cannot connect to database server');
  mysql_select_db('db1152127-sgg') or die('Cannot select database');
  $databasecall = mysql_query("SELECT counter FROM sggcount WHERE counter > 1");
  /*so here you select the already stored value and then you make an update to increment it*/
  mysql_query("UPDATE sggcount SET counter=counter+1");
  $count = mysql_fetch_assoc($databasecall);
  echo $count['counter']+1;
?>

上記のエコーを実行すると、増分値が返され、ajaxがそれを表示します。

アップデート1

より包括的なphpコードを追加しました

注:jqueryスクリプトを追加する場合は、jqueryを使用するようにジェネレーター関数を変更してください。

于 2012-04-20T12:04:57.363 に答える
1

使用をクリックしてAJAXリクエストを送信するには:

$('#button').click(function(){ // when user `click` element with `id="button"` (#button)
 $.ajax({ // Start AJAX call
  url: 'accept.php', // URL to send AJAX request
  success: function(data) { // Function to execute on SUCCESS reply (reply data as paramenter)
    var cc = $('#clicks_count').html(); // In your element with `id="clicks_count"` you store your click count (`<a id="clicks_count">21</a>`). Assign to `cc` javascript variable value of clicls_count
    $('#clicks_count').html(cc + 1); // Increasing clicls_count on 1 and write it to `<a id="clicks_count">22</a>`
  }
});
});

accept.phpで、クリック数を1増やすスクリプトを使用します。

于 2012-04-20T12:00:21.060 に答える
0

jQueryを使用すると、クリックイベントをボタンにバインドしてajaxリクエストを行うことができます。

サーバー側では、PHPページでSQLデータを更新する必要があります。Javascriptデモコードに従ってください

$(document).ready(function(){
    $('button-selector').click(function(){
        //use jquery ajax call to call php server page that update SQL data
        $.ajax({
              url: "updateClick.php",
             context: document.body
             }).success(function() { 
                     //success callback
             });
    });
});
于 2012-04-20T11:58:47.643 に答える