2016-06-03 13 views
0

PHP 스크립트에서 응답을 다시 얻으려고하므로 페이지를 다시로드하고 애니메이션을 표시하지 않아도됩니다.Ajax를 통해 PHP 출력을 페이지로 다시 가져 오는 방법은 무엇입니까?

두 부분이 모두 작동하지만 두 부분을 조합하려고하면 아무 효과가 없습니다.

지금은 입력 데이터를 Ajax를 통해 보내지 만 결과를 다시 가져올 수 없습니다.

미리 감사드립니다.

는 HTML

<head> 

    <title> 
     Consultapp :: Consultar 
    </title> 

    <?php include_once('head-attrib.php'); ?> 

</head> 

<body> 

    <div class="content"> 

     <section> 

      <img src="source/img/logo.png" class="logo logo-small logo-search"> 

      <p class="copy">Para consultar, ingresa un numero de cedula.</p> 

      <div class="card card-searchcard animated" > 

       <form id="searchBar" method="get"> 

        <input type="search" class="field" name="searchBox" id="searchBox" placeholder="Ingresa una identificacion aqui" min="11111111" max="9999999999"> 

        <button class="btn btn-main btn-bar right"><span class="text">CONSULTAR</span><i class="material-icons md-36 md-light">search</i></button> 

       </form> 

      </div> 

      <br> 

      <?php print($message) ?> 

      <div style="margin-bottom:85px"> <!-- Prevents cropped results --> 

      <?php print($info) ?> 

       <div class="scroller-box"> 
        <!-- Search Trasition--> 
        <script type="text/javascript"> 

         $(function() { 

          var box = $('.card-searchcard'); 
          var logo = $('.logo-search'); 
          var copy = $('.copy'); 
          var button = $('#searchBar button'); 
          button.one('click', function(){ 

           box.toggleClass('active'); 
           logo.toggleClass('active'); 
           copy.toggleClass('active'); 

           var dataString = document.getElementById("searchBox").value; // Post data to send 
           console.log("Data Collected Susccessfully"); 
           return false; 

            $.ajax({ 
             type: "post", 
             url: "scripts/search.php", 
             data: dataString, 
             success: function() { 
              alert("Hi gorgeous!");      
             } 
            }); 

          }); 

         }); 

        </script> 
       </div> 



       </div> 

      </div> 

      <?php include_once('navbar.php'); ?> 

     </section> 

    </div> 

</body> 

PHP

<?php 

     include_once("scripts/global.php"); 

     // Collecting input variables 
     $entry = ''; 
     $message = ''; 
     $search = $_POST['searchBox']; 

     if(isset($search)) { 

      // Validation 
      if (empty($search)) { 

        $message = "Necesito un numero para consultar"; //Empty field message 

       } 

      else{ //MySQL DB search query 

       $searchquery = mysql_query("SELECT * FROM submissions WHERE id='$search'") or die("Could not check ID, I'm search"); 
       $count = mysql_num_rows($searchquery); 

       if ($count == 0) { 

        $no_results = array(//Funny Error Messages goes here 

         '<span>Ups</span><br>Esta persona aun no ha sido calificada<br>Puedes añadir una calificacion si lo deseas', 

         '<span>Hay Caramba</span><br>nadie sabe acerca de esta persona<br> Tu sabes? Genial, añade una calificacion.', 

         ); 

        $message = $no_results[array_rand($no_results)]; 

       } 

       else{ 

        while ($row = mysql_fetch_array($searchquery)) { 

         $name = $row['name']; 
         $id = $row['id']; 
         $amount = $row['amount']; 
         $submitter = $row['submitter']; 
         $rating = $row['rating']; 

           //Thumbs up or thumbs down icon 

           if ($rating == 'good') { 
            $ratingIcon = '<i class="material-icons">thumb_up</i>'; 
           } 

           else{ 
            $ratingIcon= '<i class="material-icons">thumb_down</i>'; 
           } 

         $entry .= (//Display individual entries (Can repeat) 

         "<div class='entry animated slideInEntry'> 

          <div> 
           <span>$submitter</span> 
           <span>$amount</span> 
          </div> 

          <div>$ratingIcon</div> 

         </div> 
         "); 

        } 

        $info .=(//Display Person data (Not reapeat) 

         "<div class='card card-infocard animated slideInEntry'> 
           <label for='id'>CEDULA</label> 
           <span name='id'>$id</span> 

           <span name='name'>$name</span> 
           <button class='btn btn-fab btn-main'></span><i class='material-icons md-36 md-light'>add_circle_outline</i></button> 
         </div> 
         "); 

       } 

      } 

     } 

    ?> 

경우의 CSS는 당신이 원하는 그것을

/* Reset CSS & Global Attributes */ 

    *{ 
     box-sizing: border-box; 
     font-family: 'Raleway', sans-serif; 
     font-weight: 600; 
     letter-spacing: 1px; 
     margin: 0; 
     padding: 0; 
     border: 0; 
    } 


    /*Hiiden Scrollbar*/ 
    ::-webkit-scrollbar{ 
     display: none; 
    } 

    a{ 
     text-decoration: none; 
     color: inherit; 
    } 

    button, input{ 
     margin: 0; 
     border: none; 
    } 


    /* Rules for using icons as black on a light background. */ 
    .material-icons.md-dark{ 
     color: rgba(0, 0, 0, 0.54); 
    } 
    .material-icons.md-dark.md-inactive{ 
     color: rgba(0, 0, 0, 0.26); 
    } 

    /* Rules for using icons as white on a dark background. */ 
    .material-icons.md-light{ 
     color: rgba(255, 255, 255, 1); 
    } 
    .material-icons.md-light.md-inactive{ 
     color: rgba(255, 255, 255, 0.3); 
    } 

    .left{ 
     float: left; 
    } 

    .right{ 
     float: right; 
    } 


    /*Small Devices*/ 


    @media all and (max-width: 699px){ 
     /* Rules for sizing the icon. */ 
     .material-icons.md-18{ 
      font-size: 18px; 
     } 
     .material-icons.md-24{ 
      font-size: 24px; 
     } 
     .material-icons.md-36{ 
      font-size: 36px; 
     } 
     .material-icons.md-48{ 
      font-size: 48px; 
     } 

     /* Logo Attributes - Logo Attributes - Logo Attributes - Logo Attributes - Logo Attributes - Logo Attributes - Logo Attributes - Logo Attributes */ 

     .logo-big{ 
      width: 102px; 
      margin: 70px auto; 
     } 

        .logo-small{ 
         width: 66px; 
        } 

        .logo-search{ 
         margin: 55px 0 30px ; 
        } 

     /* Button Attributes - Button Attributes - Button Attributes - Button Attributes - Button Attributes - Button Attributes - Button Attributes */ 

     .btn{ 
      color: #FFFFFF; 
      font-weight: 600; 
      font-size: 15px; 
     } 

        .btn-main{ 
         background-color: #80CCFF; 
        } 

        .btn-secondary{ 
         background-color: #4C4C4C; 
        } 

        .btn-card{ 
         border-radius: 0 0 3px 3px; 
         width: 100%; 
         height: 60px; 
         line-height: 60px; 
        } 

        .btn-fab{ 
         width: 60px; 
         height: 60px; 
         border-radius: 100%; 
         box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.12); 
         line-height: 10px; 
        } 

           .card-infocard > .btn-fab{ 
            position: absolute; 
            bottom: 0; 
            right: 0; 
            z-index: 9999; 
            margin: 0 20px -20px 0;               
           } 


        .btn-bar{ 
         height: 55.5px; 
         width: 56px; 
         border-radius: 0 3px 3px 0; 
        } 

           .btn-bar > .text{ 
            display: none; 
           } 

     /* Card Attributes - Card Attributes - Card Attributes - Card Attributes - Card Attributes - Card Attributes - Card Attributes - Card Attributes */ 

     .card{ 
      background-color: #FFFFFF; 
      color: #4C4C4C; 
      box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.12); 
      text-align: left; 
      border-radius: 3px; 
     } 

        .card-small{ 
         max-width: 350px; 
         margin: 0 auto; 
        } 

        .card-searchcard{ 
         width: 315px; 
         height: 56px; 
         margin: 35px auto 20px; 
         padding: 0 0 0 20px !important; 
        } 

        .card-infocard{ 
         max-width: 315px; 
         padding: 23px 5%;     
         margin: 0 auto 35px; 
        } 

           .card-infocard > label{ 
            display: inline; 
           } 

           .card-infocard > span:nth-child(3){ 
            font-size: 16px; 
            font-weight: bolder; 
            display: block; 
            margin: 12px 0 0; 
           } 

     .entry{ 
      background-color: rgba(0,0,0,0.3); 
      max-width: 300px; 
      padding: 10px 0; 
      margin: 20px auto; 
      border-radius: 5px;  
     } 

        .entry > div{ 
         display: inline-block; 
        } 

        .entry > div:nth-child(1){ 
         margin: 0 55px 0 20px; 
        } 

        .entry > div:nth-child(2){ 
         margin: 0 20px 0 55px; 
        } 

        .entry > div > span{ 
         display: block; 
         margin: 5px 0; 
         text-align: left; 
        } 

        .entry > div > span:nth-child(1){ 
         font-weight: bolder; 
         font-size: 16px; 
        } 

        .entry > div > i{ 
         vertical-align: baseline; 
         font-size: 30px; 
        } 

     /* Input Attributes - Input Attributes - Input Attributes - Input Attributes - Input Attributes - Input Attributes - Input Attributes - Input Attributes */ 

     label{ 
      font-size: 12px; 
      font-weight: bold; 
      text-transform: uppercase; 
      color: #393950; 
      display: block; 
     } 

     /* No blue outline on inputs */ 
     textarea, input{ 
      outline: none; 
     } 

     input[type=mail], input[type=password]{ 
      padding: 15px 0 10px 0; 
      margin-bottom: 30px; 
      font-size: 14px; 
      color: #4C4C4C; 
      font-family: 'Raleway'; 
      width: 100%; 
      font-weight: 600; 
      border: solid rgba(0,0,0,0.18); 
      border-width: 0 0 2px 0; 
      display: block; 
     } 

     input[type=search]{ 
      height: 56px; 
      width: 70%; 
      font-size: 14px; 
     } 

        /* Placeholder Styling */ 

        ::-webkit-input-placeholder{ 
         color: #808080; 
         font-family: 'Raleway'; 
        } 

        :-moz-placeholder{ 
         /* Firefox 18- */ 
         color: #808080; 
         font-family: 'Raleway'; 
        } 

        ::-moz-placeholder{ 
         /* Firefox 19+ */ 
         color: #808080; 
         font-family: 'Raleway'; 
        } 

        :-ms-input-placeholder{ 
         color: #808080; 
         font-family: 'Raleway'; 
        } 

        /* No arrows on number input*/ 
        input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button{ 
         -webkit-appearance: none; 
          -moz-appearance: none; 
           appearance: none; 
         margin: 0; 
        } 

        /*No color autofill*/ 
        input:-webkit-autofill{ 
         background-color: rgba(255,255,255,1); !important; 
         background-color: #FFFFFF !important; 
        } 

     /* Other Attributes - Other Attributes - Other Attributes - Other Attributes - Other Attributes - Other Attributes - Other Attributes - Other Attributes */ 

     body{ 
      font-size: 14px; 
      background-color: #0C77F8; 
      text-align: center; 
      font-size: 14px; 
      color: #FFFFFF; 
     } 

     .remora{ 
      margin: 25px 0; 
      font-size: 12px; 
      color: #FFFFFF; 
      font-weight: 400; 
     } 

     .navbar{ 
      width: 100%; 
      font-size: 12px; 
      color: #FFFFFF; 
      background-color: #0C77F8; 
      position: fixed; 
      bottom: 0; 
      left: 0; 
      z-index: 9999; 
     } 

        .navbar-icon{ 
         margin: 15px 50px; 
         display: inline-table; 
        } 

        .navbar-icon > i{ 
         margin-bottom: 5px; 
        } 

     .wrapper{ 
      padding: 45px 12% 0; 
     } 

     span.link > a{ 
      border-bottom: solid 2px #80CCFF; 
      font-weight: 600; 
     } 

     .scroller-box{ 
     } 

     /* End of small devices styling - End of small devices styling - End of small devices styling - End of small devices styling - End of small devices styling*/ 
    } 

그리고 원하는 경우에 대비하여 애니메이션 코드를 다시 입력하십시오.

.animated{ 
     -webkit-animation-fill-mode: forwards; 
       animation-fill-mode: forwards; 
    } 

    /* Searchbar Animation -Searchbar Animation -Searchbar Animation -Searchbar Animation -Searchbar Animation */ 

    .logo-search.active{ 
     -webkit-animation-name: logoSearchActive; 
       animation-name: logoSearchActive; 
     -webkit-animation-duration: 1s; 
       animation-duration: 1s; 
     -webkit-animation-timing-function: ease-out; 
       animation-timing-function: ease-out; 
     -webkit-transform: translateY(-300px); 
       transform: translateY(-300px); 
    } 

    .copy.active{ 
     opacity: 0; 
     transition: 0.5s ease-in; 
    } 

    .card-searchcard.active{ 
     -webkit-animation-name: searchcardActive; 
       animation-name: searchcardActive; 
     z-index: 9999; 
     -webkit-animation-duration: 1.2s; 
       animation-duration: 1.2s; 
     transition: 0.8s ease-in; 
     -webkit-animation-timing-function: ease-in-out; 
       animation-timing-function: ease-in-out; 
    } 

    @-webkit-keyframes searchcardActive{ 
     0%{ 
     -webkit-transform: translateY(0); 
       transform: translateY(0); 
     } 

     20%{ 
     -webkit-transform: translateY(20px); 
       transform: translateY(20px); 
     } 

     60%{ 
     width: 315px; 
     } 

     100%{ 
     -webkit-transform: translateY(-221px); 
       transform: translateY(-221px); 
     border-radius: 0px; 
     width: 100vw; 
     } 
    } 

    @keyframes searchcardActive{ 
     0%{ 
     -webkit-transform: translateY(0); 
       transform: translateY(0); 
     } 

     20%{ 
     -webkit-transform: translateY(20px); 
       transform: translateY(20px); 
     } 

     60%{ 
     width: 315px; 
     } 

     100%{ 
     -webkit-transform: translateY(-221px); 
       transform: translateY(-221px); 
     border-radius: 0px; 
     width: 100vw; 
     } 
    } 

    @-webkit-keyframes logoSearchActive{ 
     0%{ 
     -webkit-transform: translateY(0); 
       transform: translateY(0); 
     } 

     50%{ 
     -webkit-transform: translateY(0); 
       transform: translateY(0); 
     } 

     100%{ 
     -webkit-transform: translateY(-300px); 
       transform: translateY(-300px); 
     visibility: hidden; 
     } 
    } 

    @keyframes logoSearchActive{ 
     0%{ 
     -webkit-transform: translateY(0); 
       transform: translateY(0); 
     } 

     50%{ 
     -webkit-transform: translateY(0); 
       transform: translateY(0); 
     } 

     100%{ 
     -webkit-transform: translateY(-300px); 
       transform: translateY(-300px); 
     visibility: hidden; 
     } 
    } 
+0

구체적인 문제를 명확히하고 필요한 것을 정확하게 강조 표시하십시오. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. –

+0

[sql injection attacks] (http://bobby-tables.com)에 취약합니다. –

+0

당신이 말하는 것에 대해 이야기하고 있다고 가정하면 응답을 성공 : 함수 (데이터) {console.log (data)} 콜백에 전달해야합니다. 다시 보내고있는 내용 (HTML, JSON 등)에 따라 '데이터'를 그에 따라 처리해야합니다. – Marcus

답변

3

필자가 필요로하는 것은 PHP 스크립트를 수정하고 Ajax 호출의 응답을 수정하는 것입니다.

먼저 출력을 인쇄하려면 PHP가 필요하고 'echo'문이 필요합니다. 결과는 JS가 작업 할 자료가있는 것보다 ajax 호출의 응답으로 전달됩니다.

예 :

$.ajax({ 
    type: "post", 
    url: "scripts/search.php", 
    data: dataString, 
    success: function(data) { 
     console.log(data);     
    } 
}); 

당신이 당신에게 PHP 스크립트 반환하는 HTML 마크 업 또는 인쇄 HTML, 당신이 사용할 수있는 경우 :

<?php echo $info; ?> 

는 PHP를 수정 한 후,이 부분 JS 편집하려고 일부 CSS의 애니를 표시하려면

$.ajax({ 
    type: "post", 
    url: "scripts/search.php", 
    data: dataString, 
    success: function(data) { 
     $('body').append(data);     
    } 
}); 

: jQuery를에서으로 .Append() 또는 .prepend() 함수처럼 몸에 데이터를 추가합니다 mation, 당신은 당신이 애니메이션하려는 요소에 .addClass()를 사용해야한다고 생각합니다.

+0

''내 PHP 스크립트 또는 내 PHP 페이지의 끝에 가야합니까? – Ferrius

+0

@Ferrius는 Ajax를 통해 호출 된 PHP 파일에 넣습니다. –

1

보내시는 게시물 데이터에 문제가 있습니다. 귀하의 search.php은 $ _POST [ '정보 검색']

if(isset($search)){... 

에 값을 기대하고있다

var dataString = document.getElementById("searchBox").value; 

var dataString = $("#searchbar").serialize(); 

로 변경하지만 그래서 그 건너 뜀을 발견 결코의 전 과정 검색

관련 문제