TOP ▲ itcore TOP プログラムパーツ

ajax ajaxでテキスト変更 (PHP+JavaScript) | itcore 2018年

PHP+JavaScript

PHP+JavaScript TOP

プログラム

<?php
date_default_timezone_set('Asia/Tokyo');
$mode = uForm('mode');
if ('ajax_test' == $mode) {
    $a = 1;
    $b = uForm('b');
    $t = date("Y-m-d H:i:s");
    $result = json_encode(array('a' => $a, 'b' => $b, 't' => $t));
    echo $result;
    exit; // ajax
}
?>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
// ajax実行
async function jClick() {
    var btn = $('#id_btn');
    btn.prop("disabled", true);
    var ret = await ajax('ajax_test.php', {mode: 'ajax_test', b: 2});
    var value = "a=" + ret.data.a + " b=" + ret.data.b + " t=" + ret.data.t;
    $('#id_result').empty().append(value);
    btn.prop("disabled", false);
}
// 共通ajax
function ajax(url, data) {
  return new Promise((resolve, reject) => {
    $.ajax({
        type: 'POST',
        url: url,
        data: data,
        //dataType: 'json',
        cache: false,
        success: function(data, status, xhr) {
            data = jJsonParse(data);
            var ret = new Object();
            ret.data = data;
            ret.status = status;
            ret.xhr = xhr;
            resolve(ret);
        },
        error: function(xhr, textStatus, errorThrown){
            alert('ajax error textStatus=' + textStatus + ' xhr.status=' + xhr.status + ' (' + errorThrown + ')');
            reject(null);
        }
    });
  });
}
// jsonなら配列(オブジェクト)に変換する。
function jJsonParse(data) {
    data = (typeof data === "function") ? data() : data;
    if (typeof data  !== "string") {
        return data;
    }
    try {
    data = (!JSON) ? eval("(" + data + ")") : JSON.parse(data);
        return JSON.parse(data);
    } catch (e) {
        return data;
    }
}
</script>

<button id=id_btn type=button onClick="jClick();">ajax実行</button><br>
結果:<span id=id_result>ここに値が入る</span>

<?php
//----------------------
// 共通関数
//----------------------
// フォーム変数の受取。存在しない時は空文字を返す。
function uForm($var) {
  if (isset($_POST[$var])) return $_POST[$var];
  if (isset($_GET[$var])) return $_GET[$var];
  return '';
}
function uSelf() {
    return basename($_SERVER["PHP_SELF"]);
}
?>

実行


結果:ここに値が入る