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) と 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>

しかし、mysql から auto_increment_number を渡す方法

お気に入り

それはまったく可能ですか?

このすべての目的は次のとおりです。

1) ユーザーが年齢を入力

2) auto_increment_number の値がない場合は、これが最初の初期入力であり、mysql に新しい行を記録する必要があることを意味します。ユーザー入力に auto_increment_number が存在する場合、mysql でそれを見つけて更新する必要があります。

それとも、目標を達成するためのより良い方法でしょうか?

4

2 に答える 2

0

あなたの要件に従って、私の提案は-ユーザーが年齢を入力すると、現在行っているようにajaxを使用してサーバー側のスクリプトページにリクエストを送信します. - そこでクエリを実行して、入力された入力値が db に存在するかどうかを確認します。- レコードが存在しない場合は、ユーザーが入力した入力で挿入クエリを実行します。そうでなければ、更新クエリを実行します。

于 2013-04-06T12:32:39.197 に答える