我正在尝试更改隐藏表单的输入值以更新数据库中游戏的分数。
我在显示和播放游戏的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 :(得分:0)
你应该试试
elem.value = newRecord;
答案 1 :(得分: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>
将上述代码的src替换为您的需求
最后但并非最不重要的是通过调用方法print_r
来检查你的updatePHP.phpprint_r($_POST);
所有这一切应该成功
答案 2 :(得分: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的主体中调用了一次,出于某种原因,当它包含在头部时它不能正确显示游戏。
再次感谢您的帮助!我会告诉你我的工作!
答案 3 :(得分: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。