0

html输入表单的一部分

<input type='text' id='age' />
<input type='hidden' id='auto_increment_number_from_mysql' />

用户输入年龄。使用 ajax 想要自动保存输入。

这是ajax代码的一部分。Ajax 获取用户输入并将其传递给 php

function autoSave(){
var age = document.getElementById("age").value;
var params = "age="+age;
var http = getHTTPObject();
http.open("POST", window.location.href, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
}

用 php 获取年龄(用户输入)

$age = $_POST['age'];

在mysql中记录。所以mysql中的结果是列auto_increment_number(值为1)和年龄(值为年龄-用户输入)的行

然后用 php 从 auto_increment_number 获取值

if ($stmt = mysqli_prepare($mysqli, "SELECT auto_increment_number FROM table_name WHERE age = ? ")) {
$stmt->bind_param('s', $age);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($auto_increment_number, $age);
$stmt->fetch();

然后用ajax从服务器接收数据

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('ajaxDiv');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
}
var age = document.getElementById('age').value;
var wpm = document.getElementById('auto_increment_number').value;
var queryString = "?age=" + age + "&auto_increment_number =" + auto_increment_number;
ajaxRequest.open("GET", window.location.href, true);
ajaxRequest.send(null); 

}

然后终于可以输出

<div id='ajaxDiv'>Your result will display here</div>

但是如何将 auto_increment_number 从 mysql 传递到

喜欢

有可能吗?

这一切的目的是:

1) 用户输入年龄

2)如果auto_increment_number没有值,表示这是第一个初始输入,我必须在mysql中记录新行。如果用户输入中存在auto_increment_number,我必须在mysql中找到它并更新。

或者可能是如何达到目标的更好方法?

4

2 回答 2

0

根据您的要求,我的建议是 - 当用户输入年龄时,您可以像现在一样使用 ajax 向服务器端脚本页面发送请求。- 在那里执行查询以检查输入的输入值是否存在于 db 中。- 如果记录不存在,则使用用户输入的输入执行插入查询。否则执行更新查询。

于 2013-04-06T12:32:39.197 回答
0

通常从服务器向客户端返回信息以更新客户端中的FORM。您可以使用修改后表单的 HTML 片段(包括自动递增字段)进行响应,也可以使用 JSON 编码形式的信息进行响应。

此外,如果您有一个非 ajax 视图,您可以使用 ajax 调用它并从返回的完整 HTML 页面中提取表单的 HTML 片段。

于 2013-04-06T11:39:52.297 回答