更改为输入后,使用ajax将GET发送到php文件

时间:2009-10-28 11:51:03

标签: php javascript ajax

我有一系列动态生成的输入,一旦用户点击输入,我需要在php文件中进行ajax更新。

我认为我有正确的代码,但是由于我理解的原因,它无法正常工作。我是一个完整的javascript / ajax noob,所以要温柔。

js / ajax:

<script type="text/javascript"> 
// Initialize the object:
var ajax = false;

// Create the object...

// Choose object type based upon what's supported:
if (window.XMLHttpRequest) {

    // IE 7, Mozilla, Safari, Firefox, Opera, most browsers:
    ajax = new XMLHttpRequest();

} else if (window.ActiveXObject) { // Older IE browsers

    // Create type Msxml2.XMLHTTP, if possible:
    try {
        ajax = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e1) { // Create the older type instead:
        try {
            ajax = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e2) { }
    }

}
function update_program(row, target, value) {
    if (ajax) { // Confirm that the object is usable
        ajax.open('get', 'update.php?row=' + encodeURIComponent(row) + '&target=' + encodeURIComponent(target) + '&nfv=' + encodeURIComponent(value)); // Call the PHP script using GET, pass the variable
        //ajax.onreadystatechange = handle_programupdate; // Function that handles the response
        ajax.send(null); // Send the request
    }
}
</script>

动态输入字段的php

echo "<td><input type=text value=\"$value\" name=\"date\" onblur=\"update_program($i, $j, this.input.date.value);\" class=med></td></td>";

行数为$ i,字段数为$ j。所以我需要发送的数据是行,字段(目标)和输入的修改值。

输入排列在一个表中,有许多(变化的行,63个字段)。每个字段都是文本输入,或者在一种情况下是文本区域。如何在用户改变后将它们提交给php文件?

1 个答案:

答案 0 :(得分:1)

我认为这部分在输入

的onclick中
update_program($i, $j, this.input.date.value)

应该是

update_program($i, $j, this.value)

另外,考虑使用jQuery,它使ajax更容易。还有其他一切:P

function update_program(row, target, value) {
    $.get('update.php', {row:row, target:target, nfv:value});
}

此外,您在函数中使用time且参数为value,对吗?