PDO는 ID와 이름을 얻습니다.

어쿠스틱 잭

자동 선택 입력 상자에 대한 연락처 이름 목록을 반환하기 위해 PDO를 사용하고 있습니다. PDO .....

$stmt = $db->prepare("SELECT ContactName, ContactID FROM `tblContacts` WHERE ContactName LIKE ? ORDER BY ContactName");

$keyword = '%' . $keyword . '%';
$stmt->bindParam(1, $keyword, PDO::PARAM_STR, 10);
$isQueryOk = $stmt->execute();
$results = array();

if ($isQueryOk) {
  $results = $stmt->fetchAll(PDO::FETCH_COLUMN);
} else {
  trigger_error('Error executing statement.', E_USER_ERROR);
}

자동 선택 .....

$("#keyword").keyup(function() {
    var keyword = $("#keyword").val();
    if (keyword.length >= MIN_LENGTH) {

        $.get( "auto-complete.php", { keyword: keyword } )
        .done(function( data ) {
            $('#results').html('');
            var results = jQuery.parseJSON(data);
            $(results).each(function(key, value) {
                $('#results').append('<div class="item">' + value + '</div>');
            })

            $('.item').click(function() {
                var text = $(this).html();
                $('#keyword').val(text);
            })

        });
    } else {
        $('#results').html('');
    }
});

이름을 선택할 때 ContactID를 가져와야합니다. 여기와 Google을 보았지만 PDO를 처음 사용하고 약간 혼란스러워했습니다.

mjoschko

결과를 가져 오는 동안 가져 오기 스타일 매개 변수 PDO :: FETCH_COLUMN을 사용 하여 결과를 첫 번째 열로 제한합니다 (예제 2 참조).

이것을 다음으로 변경하십시오.

$results = $stmt->fetchAll();

스 니펫에서는 결과를 JSON 객체로 반환하지 않습니다.

추가하려고

echo json_encode($results);

나중에 jQuery 스크립트 내에서 JSON 응답에 액세스 할 수 있어야합니다. 이런 식으로 변경하십시오

$('#results').append('<div class="item" data-id="' + value.ContactID + '">' + value.ContactName + '</div>');

완전한 예

HTML

<input type="text" name="keyword" id="keyword" />
<div id="results"></div>
<script>
    var min_length = 1;
    $("#keyword").keyup(function () {
        var keyword = $("#keyword").val();
        if (keyword.length >= min_length) {
            $.get("auto-complete.php", {keyword: keyword}).done(function (data) {
                        $('#results').html('');
                        var results = jQuery.parseJSON(data);
                        console.log(data);
                        $(results).each(function (key, value) {
                            $('#results').append('<div class="item" data-id="' + value.ContactID  + '">' + value.ContactName + '</div>');
                        })
                        $('.item').click(function () {
                            var text = $(this).html();
                            console.log($(this).attr("data-id"));
                            $('#keyword').val(text);
                        })
                    });
        } else {
            $('#results').html('');
        }
    });
</script>

PHP

// get the keyword
$keyword = filter_input(INPUT_GET, 'keyword', FILTER_SANITIZE_SPECIAL_CHARS);
// instantiate PDO with DNS, Username, Password
$db = new PDO();
$stmt = $db->prepare("SELECT ContactName, ContactID FROM `tblContacts` WHERE ContactName LIKE ? ORDER BY ContactName");
$keyword = '%' . $keyword . '%';
$stmt->bindParam(1, $keyword, PDO::PARAM_STR, 10);
$isQueryOk = $stmt->execute();
$results = array();

if ($isQueryOk) {
  $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
  trigger_error('Error executing statement.', E_USER_ERROR);
}

echo json_encode($results);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PDO는 다른 테이블에서 현재 추가 된 ID를 얻습니까?

분류에서Dev

PHP MSSQL PDO는 테이블 이름을 얻습니까?

분류에서Dev

숫자와 이름이있는 열을 'ID'및 '이름'두 개의 다른 열로 분할합니다.

분류에서Dev

Mongo db의 OrderBy는 이와 같은 것을 얻습니다.

분류에서Dev

Rails는 특정 ID 이후에 기록을 얻습니다.

분류에서Dev

Sympy는 심볼 이름을 얻습니다.

분류에서Dev

Nifi는 csv 열 값에서 파일 이름을 얻습니다.

분류에서Dev

Gulp.js는 .src ()에서 파일 이름을 얻습니다.

분류에서Dev

vbscript는 메일에서 사용자 이름을 얻습니다.

분류에서Dev

클로저는 부모 함수 이름을 얻습니다.

분류에서Dev

Formset ID / 이름을 얻는 방법

분류에서Dev

양식에서 ID와 이름 사이의 충돌을 해결할 수있는 방법이 있습니까?

분류에서Dev

Laravel Eloquent Many to Many는 이름 대신 id를 가진 다른 테이블을 통해 추가 데이터를 얻습니다.

분류에서Dev

JQuery는 체크 박스와 HTML의 값을 얻습니다.

분류에서Dev

파이썬 geopy는 도시와 국가를 얻습니다.

분류에서Dev

가져 와서 다른 클래스의 인스턴스를 만드는 곳에서 클래스 이름을 얻는 방법이 있습니까?

분류에서Dev

IISExpress가 "IP 주소 + 호스트 이름을 사이트 ID로 변환하지 못했습니다"라는 메시지와 함께 실패합니다.

분류에서Dev

열 이름과 값은 PDO를 얻습니다.

분류에서Dev

"승자"와 "패자"가있는 테이블에서 승률을 얻습니다.

분류에서Dev

같은 높이에서 <p>와 <ul>을 얻는 데 문제가 있습니다.

분류에서Dev

Xpath는 그들 사이에 div와 h3을 얻습니다.

분류에서Dev

nodejs discord는 사용자 ID에서 별명을 얻습니다.

분류에서Dev

Laravel Livewire는 현재 페이지 ID를 얻습니다.

분류에서Dev

Postgres는 마지막 업데이트 ID를 얻습니다.

분류에서Dev

jquery는 앵커 태그의 데이터 ID를 얻습니다.

분류에서Dev

bitbucket, ssh 키는 id_rsa 이외의 이름을 가질 수 없습니다.

분류에서Dev

안드로이드는 페이스 북 사용자 이름과 ID를 얻습니다.

분류에서Dev

우리가 긁는 동안 ID를 얻을 수 없습니다 (파이썬)

분류에서Dev

dt.datetime 두 날짜를 빼서 초와 밀리 초를 제거하거나 아름답게 만드는 방법 사이의 시간을 얻습니다.

Related 관련 기사

  1. 1

    PDO는 다른 테이블에서 현재 추가 된 ID를 얻습니까?

  2. 2

    PHP MSSQL PDO는 테이블 이름을 얻습니까?

  3. 3

    숫자와 이름이있는 열을 'ID'및 '이름'두 개의 다른 열로 분할합니다.

  4. 4

    Mongo db의 OrderBy는 이와 같은 것을 얻습니다.

  5. 5

    Rails는 특정 ID 이후에 기록을 얻습니다.

  6. 6

    Sympy는 심볼 이름을 얻습니다.

  7. 7

    Nifi는 csv 열 값에서 파일 이름을 얻습니다.

  8. 8

    Gulp.js는 .src ()에서 파일 이름을 얻습니다.

  9. 9

    vbscript는 메일에서 사용자 이름을 얻습니다.

  10. 10

    클로저는 부모 함수 이름을 얻습니다.

  11. 11

    Formset ID / 이름을 얻는 방법

  12. 12

    양식에서 ID와 이름 사이의 충돌을 해결할 수있는 방법이 있습니까?

  13. 13

    Laravel Eloquent Many to Many는 이름 대신 id를 가진 다른 테이블을 통해 추가 데이터를 얻습니다.

  14. 14

    JQuery는 체크 박스와 HTML의 값을 얻습니다.

  15. 15

    파이썬 geopy는 도시와 국가를 얻습니다.

  16. 16

    가져 와서 다른 클래스의 인스턴스를 만드는 곳에서 클래스 이름을 얻는 방법이 있습니까?

  17. 17

    IISExpress가 "IP 주소 + 호스트 이름을 사이트 ID로 변환하지 못했습니다"라는 메시지와 함께 실패합니다.

  18. 18

    열 이름과 값은 PDO를 얻습니다.

  19. 19

    "승자"와 "패자"가있는 테이블에서 승률을 얻습니다.

  20. 20

    같은 높이에서 <p>와 <ul>을 얻는 데 문제가 있습니다.

  21. 21

    Xpath는 그들 사이에 div와 h3을 얻습니다.

  22. 22

    nodejs discord는 사용자 ID에서 별명을 얻습니다.

  23. 23

    Laravel Livewire는 현재 페이지 ID를 얻습니다.

  24. 24

    Postgres는 마지막 업데이트 ID를 얻습니다.

  25. 25

    jquery는 앵커 태그의 데이터 ID를 얻습니다.

  26. 26

    bitbucket, ssh 키는 id_rsa 이외의 이름을 가질 수 없습니다.

  27. 27

    안드로이드는 페이스 북 사용자 이름과 ID를 얻습니다.

  28. 28

    우리가 긁는 동안 ID를 얻을 수 없습니다 (파이썬)

  29. 29

    dt.datetime 두 날짜를 빼서 초와 밀리 초를 제거하거나 아름답게 만드는 방법 사이의 시간을 얻습니다.

뜨겁다태그

보관