Передать значение переменной javascript в php-файл при вызове функции javascript - PullRequest
0 голосов
/ 26 августа 2011

У меня есть функция javascript, которая запускается при нажатии кнопки скрипта,

//script function    
oyCrosswordFooter.prototype.update = function(){    
        var  buf = "";

        if (!this.puzz.started){
            buf += "Game has not yet started!";
        } else {
            buf += this.puzz.menu.score ;   //this is the value I want to pass to a php file    
            if(this.puzz.menu.rank != -1){
                buf += this.puzz.menu.rank;         
            }
        }

        document.getElementById("oygFooterStatus").innerHTML = buf; 
    } 

Я хочу передать значение 'buf' в другой файл php (скажем, a.php), так как мне нужносохранить его в базе данных при нажатии кнопки.Может кто-нибудь сказать, пожалуйста, как это сделать?Если кто-то может опубликовать полный ответ, так как я новичок в javascript.
Обратите внимание, что вышеуказанная функция находится в файле .js (формат файла .js)

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

Вам нужно использовать Ajax, в Google есть много информации об Ajax, но я предоставлю некоторый вспомогательный код:

oyCrosswordFooter.prototype.update = function(){    
    var  buf = "";

    if (!this.puzz.started){
        buf += "Game has not yet started!";
    } else {
        buf += this.puzz.menu.score ;   //this is the value I want to pass to a php file    

        if(this.puzz.menu.rank != -1){
            buf += this.puzz.menu.rank;         
        }
    }

    var ajax;
    if(XMLHttpRequest)
        ajax = new XMLHttpRequest();
    else
        ajax = new ActiveXObject("Microsoft.XMLHTTP");

    ajax.onreadystatechange = function(){
        if(ajax.readyState==4 && ajax.status==200){
            alert('buf was sent to the server');
        }
    }

    ajax.open('GET', 'getbuf.php?buf='+encodeURIComponent(buf), true);
    ajax.send();

    document.getElementById("oygFooterStatus").innerHTML = buf; 
} enter code here

Этот скрипт отправляет buf на сервер через GET к скрипту getbuf.php. Так что он будет доступен в массиве php $_GET. Тщательно очистите его, прежде чем вставить в базу данных.

Возможно, вы захотите использовать библиотеку JS, например, jQuery. Это сильно упрощает Javascript, например, весь код, который я добавил, можно заменить на:

$.get('getbuf.php', {buf: buf}, function(){
    alert('buf was sent to the server');
});
0 голосов
/ 26 августа 2011

Не знание javascript не должно быть слишком большой проблемой для этого. Подготовьте jQuery и создайте сообщение, например:

$.ajax({
  type: 'POST',
  url: '/a.php',
  data: buf,
  success: success,
  dataType: dataType
});
...