N.B. - 처음에는 잘못된 제목에 대해 유감스럽게 생각합니다. 게시하지 않고 해결하려는 다른 질문이었습니다.테이블에 대한 ajax 쿼리의 일관되지 않은 결과
PHP 파일 호출에서 데이터를 반환하는 것과 관련하여 두 가지 간단한 질문을하고 싶습니다. 이 포럼 덕분에 HMTL에 PHP 코드를 작성하여 db 테이블에 데이터를 저장하고 테이블에서 데이터를 검색 할 수 있습니다.
하지만 지금, 한 페이지에, 나는 테이블에서 데이터를 검색, 테이블에 데이터를 추가 필요하고, 갱신 모든의 새로 고침없이 데이터, HTML 화면. 그래서 나는 MySQL의 테이블 (6 개 분야), 순수 PHP로 작성된 "이 백엔드", HTML 및 자바 스크립트로 작성된 "이 프론트 엔드"와 함께 약간의 "테스트"환경을했다.
하루 종일 어제 내가 떠난 작은 머리카락을 꺼내고 있었지만 마침내 html/javascript 파일로 데이터를 다시 전달하는 개념을 알아 냈습니다 (아래 코드를 모두 알려 드리겠습니다). 모든 것이 훌륭하게 작동합니다! 그러나 일치하지 않습니다 - 그래서 실험은 다음 단계로 수행되었다 : 프론트 엔드의
- FTP 업로드 번호를 입력
- IE 에 백엔드의
- FTP 업로드
- 새로 고침 프론트 엔드 2 배 입력 상자에 "150"을 입력하십시오. ("150"은 지미 헨드릭스의 행 번호
입니다.) - 양식의 "제출"버튼을 클릭하십시오. (이 실험에서는 이 "enter"키를 사용하지 않습니다.)
- 작동하면 경고 메시지가 Jimi Hendrix와 함께 표시됩니다.
- 작동하지 않는 경우 아무 것도 나타나지 않습니다.
그래서 여기 두 실험의 결과 Y = 지미 헨드릭스 N = 아니오 팝업 상자
- 새로 고침
- YNYNNYYNYYYNYYNYYYNNY 뉴욕 뉴욕
- 새로 고침
- YYYNYYNYYYYNYNYYNYNYN NYYN
이 있습니다 나는 정말로 가볍게 침을 볼 수 없다. 루틴이 "작동"하는 경우에 대해 여기에 있습니다. 이 동작은 db에 저장하는 것과 관련된 다른 코드 중 일부입니다.
이제 내 두 가지 질문 :
- 이 코드가 작동하는 방식에 변화를 설명 할 수 있습니까? 어떤 식 으로든 내가 그것을 고칠 수 있습니까?
- 지미 헨드릭스를 "경고"상자에 넣었습니다.하지만 그를 div에 넣으려면 어떤 명령을 사용해야합니까? ? .load? 또는 다른 명령? 여기
<?php $localid = $_POST['localid']; $host = "hostname"; $user = "username"; $password = "password"; $dbname = "dbname"; $cxn = mysqli_connect($host,$user,$password,$dbname); if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();} $query = " select * from testtable where localid = $localid "; $result = mysqli_query($cxn, $query) or die ("could not query database 1"); while ($row = mysqli_fetch_array($result)) { $firstname = $row['firstname']; $lastname = $row['lastname']; $zip = $row['physzip']; $gender = $row['gender']; $dob = $row['dob']; } $variablestopass = array ( 'ln' => $lastname, 'fn' => $firstname, 'zip' => $zip, 'gender' => $gender, 'dob' => $dob ); echo json_encode($variablestopass); ?>
그리고는 "프론트 엔드"이다 (헤더없이) :
<body> <form name="#inputform"> <table class="divtest"> <tr><td>Localid:</td><td> <input type="text" id="localid"></td></tr> <tr><td colspan="2" align="center"><input type="submit" id="submitbutton" value="Submit" /></td></tr> </table> </form> <div id="loadmehere" class="divtest"></div> <script type="text/javascript"> $(document).ready(function(e) { $("#submitbutton").click(function() { var localid = document.getElementById("localid").value; $.ajax({ type: "POST", url: "testajaxbackend.php", data: {localid: localid}, dataType : 'json', success: function(result) { alert(result['fn'] + result['ln'] + result['zip'] + result['gender'] + result['dob']); }, error : function() { alert("error"); } });//End of ajax call });//End of click });//End of ready </script> </body> </html>
당신이 만들 우려가 사전에 어떤 도움을 주셔서 감사합니다
다음은 PHP 파일입니다. 추신 - 다른 놈들이 내 짐승 코드 때문에 도움이 될 수도 있기 때문에이 사실을 알려드립니다.
lol 반환 변수를 VariableStopAss로 읽습니다. – 75inchpianist
Sidenote - 당신은'$ _POST [ 'localid']'를 위생적으로 보이지 않습니다. 또한 $ firstname 등을 검색하는 것을 이해하지 못합니다. while 루프를 수행하지만 다음에 루프가 실행되면 vars가 겹쳐 쓰입니다. – jdepypere
생각. 클릭 함수의 첫 번째 줄에'e.preventDefault();'를 추가하십시오. 물론 e를 클릭에 대한 입력으로 추가하십시오. 제출 기능이 모르게 기본값을 수행 중일 수 있습니다. – foochow