post.php
ユーザーがデータを入力し、入力receivepost.php
されたデータが Ajax ポストを介して転送されるフォームがあります。で次のことを達成したいreceivepost.php
:
if (button save is pressed) {
save to database
} else if (button retrieve is pressed) {
retrieve from database
}
で使用isset($_POST['submit'])
してみましたreveivepost.php
が、押されたボタンを検出しません。Ajax の投稿は機能しており、すべてのデータはreceivepost page
. 2 つの異なる PHP ファイルを作成し、押されたボタンに応じて実行するという別の解決策がありますが、より良い解決策があると思います。
これが私のajax呼び出しです:
$("document").ready(function () {
$("#submit").click(function () {
var xmlhttp;
// test browsers
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// get the values of textboxes
var desc_text = $("#desc").val();
var speed_text = $("#speed").val();
var tarea_text = $("#tarea").val();
// variable to hold value of textboxes
var content = "desc=" + desc_text + "&speed=" + speed_text + "&tarea=" + tarea_text;
// open the request
xmlhttp.open("POST", "receivepost.php", true);
// set header
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// check xmlhttp state and status and display text in div
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('para').innerHTML = xmlhttp.responseText;
}
}
// send the content of the textboxes
xmlhttp.send(content);
});
});
ここに私のpost.php
フォームがあります:
<form id="myform">
<label for="description">Description:</label>
<input type="text" id="desc" name="desc" /><br/>
<label for="speed">Speed: </label>
<input type="text" id="speed" name="speed" /><br/>
<textarea id="tarea" cols="10" rows="10" name="tarea"></textarea><br/>
<input type="button" id="submit" name = "submit" value="Save">
<input type="button" id="retrieve" name="retrieve" value="Retrieve">
</form>
<div id="para"></div>