2017-11-12 1 views
-1

저는 웹 개발에 익숙하지 않고 현재 codeigniter PHP 프레임 워크를 사용하고 있습니다. 현재 내가 갇혀있는 것은 선택 드롭 다운이 포함 된 페이지가 있는데, ID 1, 2, 3 등의 값이 데이터베이스에서 가져옵니다. 이제 내가해야 할 일은 드롭 다운에서 값을 선택하면 "2"라고 말하면서 ID가 2 인 열의 정보를 보여주고 ID는 고유합니다. 그래서 id = 3으로 변경하면 그 정보와 관련된 정보가 표시됩니다.CodeIgniter에서 PHP, AJAX 및 MySQL 사용하기

쿼리 것이지만, 동적 ID로 :

<script> 
     function showSpecs(str){ 
      if (str ==""){ 
      document.getElementById("txtHint").innerHTML = ""; 
      return; 
      }else{ 
      if (window.XMLHttpRequest){ 
       xmlhttp = new XMLHttpRequest(); 
      }else{ 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange = function(){ 
       if (this.readyState == 4 && this.status == 200){ 
       document.getElementId("txtHint").innerHTML = this.responseText; 
       } 
      }; 
      xmlhttp.open("GET", "<?echo base_url();?>user/v_services.php?q="+str, true); 
      xmlhttp.send(); 
      } 
     } 
     </script> 

<?php 
       $q = intval($_GET['q']); 

       $con = mysqli_connect("localhost", "root", "", "db_test"); 
       if (!$con){ 
        die('Could not connect: ' . mysqli_error($con)); 
       } 

       mysqli_select_db($con,"db_test"); 
       $sql="SELECT * FROM user WHERE id = '".$q."'"; 
       $result = mysqli_query($con,$sql); 

       echo "<table> 
       <tr> 
       <th>Processor</th> 
       <th>RAM</th> 
       <th>Harddisk</th> 
       <th>Graphics Card</th> 
       <th>Monitor</th> 
       </tr>"; 
       while($row = mysqli_fetch_array($result)) { 
        echo "<tr>"; 
        echo "<td>" . $row['NAME'] . "</td>"; 
        echo "<td>" . $row['ADDRESS'] . "</td>"; 
        echo "<td>" . $row['AGE'] . "</td>"; 
        echo "</tr>"; 
       } 
       echo "</table>"; 
       mysqli_close($con); 
?> 
:

select name, address, age from user where id= 2

내가 현재 가지고하는 것은이 v_services.php으로 하나 개의 PHP 파일에서 보기입니다

하지만 오류 Message: Undefined index: q을 제공합니다. PHP, AJAX, MYSQL에 대한 경험이 있으시면 많은 도움을 주시면 감사하겠습니다.

감사합니다.

p.s. 위 코드의 리소스는 here p.s.s입니다. 내 데이터베이스 연결이 이미 올바른 것입니다. 문제가있는 코드 만 구현하면됩니다. 여기

당신이 도움이 <?=base_url();?> 대신

<?echo base_url();?>의 희망을 사용할 xmlhttp.open()

에 문제가 있습니다 선택 태그

<?php echo form_open('Services/create');?> 
    ID: <br> 
    <select name="id" onchange="showSpecs(this.value)"> 

     <?php 
     $link = mysqli_connect("localhost", "root", "", "db_test"); 
     $sql = mysqli_query($link, "SELECT * from user"); 
      while ($row = $sql->fetch_assoc()){ 
       if ($row['status']=== "1") 
        echo '<option value="'.$row['ID'].'">' . $row['ID'] . "</option>";   
      } 
     ?> 
     </select> <br> 
     Name:<br> 
     <input type="text" name="name"> 
     <br> 
     Email:<br> 
     <input type="text" name="email"><br> 
     <input type="submit" name="submit" value="Create reservation"> 
     <?php echo validation_errors();?> 
    </form> 
+0

Codeigniter를 사용하고 있습니까? 왜 .php가 끝에있는 user/v_services.php? q를 사용하고 있습니까? 호출하려고하는 실제 컨트롤러/메소드는 무엇입니까? – TimBrownlaw

+0

죄송합니다. 친구, 방금 codeigniter를 배우기 시작했습니다. 최근에 제공된 w3site에 필요한 리소스를 찾았지만 MVC 스타일로 구현하는 데 문제가 있으므로 하나의 뷰 파일에 저장했습니다. – user478905

+0

충분히 공정한 - 우리 모두는 어딘가에서 시작해야합니다. 여기에 팁이 있습니다 ... 페이지에서 js를 렌더링 할 때 사용중인 URL을 살펴볼 수 있습니다. 브라우저에서 간단한 View Source를 실행하고 찾아보고 어떻게 생겼는지 확인하십시오. – TimBrownlaw

답변

0

에서 일어나고있는 무슨 방법이다.

+0

죄송합니다. 아직 정의되지 않았습니다./ – user478905

0

나는 아직도 예제 코드를 배우고 그것을 CI에 포팅 한 것으로 알고 있습니다. 그래서 데이터베이스 클래스 등을 사용하고 당신이 지금 무엇을 고수하는 방법으로 이동 않을거야 그 노트 ...에

귀하의 주요 문제는이 라인은

xmlhttp.open("GET", "<?echo base_url();?>user/v_services.php?q="+str, true); 

내가 가정합니다입니다 제어기/메소드가 이어야합니다. 여기서 사용자은 컨트롤러이고 v_services는 PHP 코드가 포함 된 user 컨트롤러의 메소드 (기능)입니다.

그렇지 않은 경우

- 당신이 무엇에 맞게 변경 ..

그래서 그 기준으로 위의 코드가 될 것입니다 ...

xmlhttp.open("GET", "<?php echo base_url();?>user/v_services?q="+str, true); 

참고 :

  1. . 이 경우 CI와 같은 프레임 워크의 URL 특성으로 인해 URL에 php가 필요하지 않습니다.

내가 언급 한 동일한 튜토리얼의 빠른 "녹업"을 수행했으며 "작동"합니다.

다른 날을위한 다른 방법이 있습니다.

즉 더 함께 어딘가를 얻을 수 있는지 확인

...

UPDATE :

귀하의 코드보기

이 방법으로 처리되어야 그냥 몇 가지 설명을위한

.... 서비스이라고합시다. 다음

public function services { 
    $this->load->view('v_services'); // This is your View 
} 

사용자가 컨트롤러에 그래서 우리는 당신의 AJAX 코드에 대한 응답을 처리 할 방법이 필요합니다. 그래서 PHP 코드는 services_ajax를 호출 할 수있는 자체 메소드로 이동합니다.

public function services_ajax(){ 

// Your PHP Code goes in here 

} 

참고 : 중요! 우리는 AJAX 호출을 처리하는 메소드의 이름 ...

xmlhttp.open("GET", "<?php echo base_url();?>user/v_services?q="+str, true); 

지금 이해의 변화는 URL 사용자/services_ajax에게

합니까이다

xmlhttp.open("GET", "<?php echo base_url();?>user/services_ajax?q="+str, true); 

된다을 변경 한 것처럼 ? 뷰를 표시하는 방법과 javascript/AJAX 요청을 처리하는 다른 방법을 다루는 메소드가 필요합니다.

그런 다음 모든 URL이 올바른지 확인해야합니다.

+0

안녕하십니까, 시도한 코드를 공유 하시겠습니까? 큰 도움이 될 것입니다! – user478905

+0

제가 위에서 제안한 것을 시도해 보셨습니까? – TimBrownlaw

+0

나는 지금 그걸 가지고있다. – user478905