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)和age(值是age - 用户输入)
然后用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中找到并更新。
或者可能是一些更好的方法来实现目标?
答案 0 :(得分:0)
通常会将信息从服务器返回给客户端以更新客户端中的FORM。您可以使用修改后的表单的HTML片段(包括自动递增的字段)进行响应,也可以使用JSON编码形式的信息进行响应。
此外,如果你有一个非ajax视图,你可以用ajax调用它,并从返回的完整HTML页面中提取表单的HTML片段。
答案 1 :(得分:0)
根据您的要求,我的建议是 - 当用户输入年龄时,您使用ajax向服务器端脚本页面发送请求,就像您目前所做的那样。 - 在那里执行查询以检查输入的输入值是否存在于db中。 - 如果记录不存在,则使用用户输入的输入执行插入查询。 否则执行更新查询。