2013-12-11 4 views
-1

Я пытаюсь изменить значение ввода скрытой формы, чтобы обновить счет игры в моей базе данных.Изменить значение ввода формы с помощью javascript

У меня есть этот код формы на странице php, которая отображает и воспроизводит игру.

<form id ="recordForm" method="POST" action="updatePHP.php"> 
     <input type='hidden' name="record" id='record' value='' /> 
</form> 

И пытаюсь изменить значение скрытого поля ввода с помощью этого javascript. Это находится в отдельном файле javascript, который контролирует игру.

function postPHP(newRecord){ 
alert("POST TO PHP"); //test to make sure I am calling this function 
alert (newRecord); //alerts the correct value 

var elem = document.getElementById('record'); 
elem.value = 12; 
// document.getElementById('record').value = newRecord; 
// document.getElementById('recordForm').submit(); 
}; 

Есть много тем по этому вопросу, но я просто не в состоянии понять, что я делаю неправильно. Какие-либо предложения?

+0

Да, у меня много предложений ..... :) – P5Coder

+0

Этот код должен работать нормально (он установит значение '12'). Какова ваша конкретная проблема? У вас есть ошибки? – musefan

+0

Где вы вызываете функцию 'postPHP()' – Roopendra

ответ

0

вы должны попробовать

elem.value = newRecord; 
0

Ваша функция JS должна работать, как это, я тестировал, еще меньше, чем у вас уже есть. Я удаляю предупреждения, так как они вам больше не нужны, и оставляйте комментарии, которые вы прокомментировали. Это означает, что ваша функция JS не является проблемой.

function postPHP(newRecord) 
{ 

document.getElementById('record').value = newRecord; 
document.getElementById('recordForm').submit(); 

}; 

Не забудьте отправить параметр при вызове функции JS, я сделал это с помощью кнопки

<button onClick="postPHP('14')">Change</button> 

так как ваша функция JS находится в отдельном файле, не забудьте включить его в файле, где вы вызываете функцию

<head> 
    <script type="text/javascript" src="PATH/exampleName.js"></script> 
</head> 

Заменить ГКЗ выше тега для ваших потребностей

И последнее, но не в последнюю очередь проверить updatePHP.php с помощью вызова метода print_r

print_r($_POST); 

Все, что нужно сделать трюк

0

Спасибо за все ваши предложения! Это был мой первый вопрос, я посмотрю на всех и посмотрю, смогу ли я заставить его работать.

Это где я звоню postPHP:

function checkScore(score, record) {  

     alert('Score= ' + score); 
     alert ('Record= '+ record); 

     if(score < record || record === 0){ 
      alert ("NEW RECORD"); //this alert is displayed when needed 
      postPHP(score); 
     } 
}; 

и checkScore был вызван, когда пользователь переместил целевой ящик обратно в начало месте и следующая инструкция была выполнена

 if (this.hasWon()) { 
      var finalScore = this.getScore(); 
      var record = this.getRecord(); 
      checkScore(finalScore, record); 
      return ret;  //moving not allowed 
     } 

есть некоторые методы доступа, используемые там.

//access methods 
    Board.prototype.hasWon = function() { 
     return state === 1; 
    }; 
    Board.prototype.getScore = function() { 
     return score; 
    }; 
    Board.prototype.getWt = function(r, c) { 
     return b[r][c]; 
    }; 
    Board.prototype.getData = function() { 
     return {"bobR": bobR, "bobC": bobC, "bobDir": bobDir, 
      "tgtR": tgtR, "tgtC": tgtC, 
      "startC": startC, "n": n}; 
    }; 
    Board.prototype.getRecord = function(){ 
     var s = "" + window.location; 
     var ampIdx = "" + s.indexOf("&"); 
     ampIdx = parseInt(ampIdx); 
     ampIdx = ampIdx + 7; 

     var record = "" + s.substring(ampIdx); 
     //alert("Puzzle Record= " + record); 
     record = parseInt(record); 
     return record; 
    } 
    ; 

У меня есть включен javascript. Я назову его один раз в теле HTML, по какой-то причине он не отображает игру правильно, когда включен в голову.

Еще раз спасибо за помощь! Я дам вам знать, что я получу!

0

Это то, что я получил, чтобы работать.

function postPHP(newRecord, seed) { 
    alert("POST TO PHP"); 
    var inner = "<input type='hidden' name='record' id='record' value=" + newRecord + " >"+ 
       "<input type='hidden' name='seed' id='seed' value=" + seed + " >"; 
    document.getElementById('recordForm').innerHTML = inner; 
    document.getElementById('recordForm').submit(); 
}; 

Еще раз спасибо за помощь, я просто не знаю, почему первый метод не работал. Это мои первые попытки PHP и javascript.

Смежные вопросы