ユーザがウェブページ(main.php)からテストケースを提出できるようにするプログラムを用意しています。ウェブページはajaxリクエストを送信してMySQLにローを挿入しますユーザーデータ(insert.php)はdone=0
です。次に、各サーバのテストケースを処理/実行する(各サーバにsshを実行し、サーバ上でテストを実行する)crontab上で実行するリスナスクリプト(testexec.php)を持って、テスト後に行をdone=1
に更新する完成されました。これまでのところ、私のコードでは、行の挿入が完了した後すぐに私のAjaxコールが終了し、ユーザーに待つように指示します。リスナースクリプトがテストケースで終了したときにユーザーに知らせ、その結果をページに表示できるようにしたい。リスナースクリプトが完了し、ユーザに通知するためのAjaxコール
どうすればいいですか?私はmain.phpで2回のajax呼び出しが必要ですか?
main.php
</style>
</head>
<body>
<div id="gatewayInput">
<form method="post">
<input type="text" id="server" name="server" placeholder="Server Name"><br><br>
<?php
include("search.php");
?>
</div>
<div class="box1">
<label class="col">TEST1/TEST2</label>
<span class="col">
<input type="radio" name="option" id="r1" value="1" />
<label for="r1">TEST1</label>
<input type="radio" name="option" id="r2" value="2" />
<label for="r2">TEST2</label>
</span>
<span class="col">
<input type="submit" class="button" name="submit"/>
</span>
</form>
</div>
<script src ="../js/jquery-3.2.1.min.js"></script>
<script src="../js/jquery-ui.min.js"></script>
<script type="text/javascript">
//auto seatch function
$(function() {
$("#server").autocomplete({
source: 'search.php'
});
});
//button click function
$(".button").click(function(event){
if ((document.getElementsByName("gateway")[0].value == '')) {
alert('Server Required!');
return false;
}
else if (document.querySelectorAll('input[type="radio"]:checked').length < 1) {
alert('Please Choose Air/Ground Value!');
return false;
}
else {
event.preventDefault();
//POST the data to insert.php
$.ajax({
url:"insert.php",
type: "POST",
data: {
gateway: $("#gateway").val(),
option: $('input[type=radio]:checked').val()
},
dataType: "text",
success:function(result){
$('#div0').html("Your test is being processed, please wait..");
//clearInterval(interval);
console.log(result);
alert('Test case submitted!');
}
});
return true;
}
});
これは、rからresponseTextを返しますinsert.phpのesult? – kkmoslehpour