簡體   English   中英

如何使用 AJAX 從 php 獲取值

[英]how to get the value from php with AJAX

我想分別獲取 2 個值,以便通過 AJAX 從 PHP 中自動填充第一個文件中的輸入,但是當我在 console.log(data) 中獲取所有數據時,我想分別檢索它以便把它放在不同的標簽中

<input id="regist" type="text" name="regist" onblur="passdata();">
<input id="atyp" type="text" name="atyp" >
<input id="mtow" type="text" name="mtow" >

<script>
$(document).ready(function(){})

function passdata() {
    var regist = $('#regist').val();

    $.ajax({
        type: 'post',
        url: 'checkdb.php',
        data: 'regist='+regist,
        success: function(data){
            var atyp = $('#myvalue1').val();
            var mtow = $('#myvalue1').val();
            $('#atyp').text(atyp);
            $('#mtow').text(mtow);
            alert (aty+mtow);
            console.log(data);
        }
    })
}
</script>

和PHP文件....當然與數據庫連接

$regist = $_POST['regist'];

$conn = mysqli_connect($host,$user,$pwd,$db);
$sql= ("SELECT * FROM aircrafts where regist='$regist'");
$datas = mysqli_query($conn,$sql);

foreach ($datas as $row) {};

if(mysqli_num_rows($datas) == 0) {
    echo 'non ce niente';
} else { ?>

    <span id="myvalue1"><?php echo $atyp =  $row['atyp'];?></span>
    <span id="myvalue2"><?php echo $atyp =  $row['mtow'];?></span>

<?php };

?>

將您的 Ajax 請求更改為:

$.ajax({
    type: 'post',
    url: 'checkdb.php',
    data: 'regist='+regist,
    dataType: 'json', // NEW LINE
    success: function(data) {
        //var atyp = $('#myvalue1').val();
        //var mtow = $('#myvalue1').val();
        //$('#atyp').text(atyp);
        //$('#mtow').text(mtow);
        var atyp = data.atyp;
        var mtow = data.mtow;
        alert ('aty: ' + aty , 'mtow: ' + mtow);
        console.log(data);
    }
})

並在您的 PHP 中:更改這些行

else{?>
<span id="myvalue1"><?php echo $atyp =  $row['atyp'];?></span>
<span id="myvalue2"><?php echo $atyp =  $row['mtow'];?></span>
<?php };

到這正是行

else {
    echo json_encode( $row );
}

編輯

關於您的“DOM 事件”處理(“document onready”和“input#regist onblur”),我建議這樣做。

HTML:

<!-- <input id="regist" type="text" name="regist" onblur="passdata();"> -->
<input id="regist" type="text" name="regist">
<input id="atyp" type="text" name="atyp">
<input id="mtow" type="text" name="mtow">

JavaScript:

function passdata(event) {
    $.ajax({
        type: 'post',
        url: 'checkdb.php',
        data: 'regist=' + $(event.target).val(),
        dataType: 'json',
        success: function(data){
            console.log(data);
        }
    })
}

$(document).ready(function(){
    // on blur event
    $('#regist').on('blur', passdata)
    // on input event | maybe this would be also an interesting option as it fires immidiately on input
    // $('#regist').on('input', passdata)
})

此引導程序將邏輯與標記分開,這通常是一種很好的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM