使用javascript更改表单输入值

时间:2013-12-11 09:33:35

标签: javascript php forms input

我正在尝试更改隐藏表单的输入值以更新数据库中游戏的分数。

我在显示和播放游戏的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();
};

关于这个主题有很多主题,但我无法弄清楚我做错了什么。有什么建议吗?

4 个答案:

答案 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.php
print_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。