有可能用ajax将mysql值插入html输入值吗?

时间:2013-04-06 11:32:45

标签: php mysql ajax

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中找到并更新。

或者可能是一些更好的方法来实现目标?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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