2017-01-15 1 views
1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

수 없습니다 통과 값은 PHP로

<!--SERVER Query and Return function--> 
    <script type="text/javascript"> 
    function getreport() 
    { 
     $("button").click(function() 
     { 
      var id = $("#idF").val(); //assigning form values 
      var report= $("#reportF").val(); 
      var date = $("#dateF").val(); 

      $.post("report.php", {idP:id,reportP:report,dateP:date}, function(data){ 
       $("#results").html(data); //updating the page with results 
       }); //trying to pass the 3 fields to report.php 
     }); 
    } 
    </script> 

<form id="queryReports"> 
     ID: <input type="text" style='text-transform:uppercase' id="idF"> Report:<input type="text" style='text-transform:uppercase' id="reportF"> 
     Date(dd/mm/YYYY): <input type="date" id="dateF" id="Study_dateF">   
     <button id="button" onclick="getreport()">SEARCH</button> 

</form> 

누군가가이 코드는 아무것도 할 것으로 보인다 이유를 올바른 방향으로 날 지점 수 있습니까? 버튼을 클릭하면 report.php가 양식에서 전달 된 값으로 호출 될 것으로 예상됩니다. 그러나 나는 그것으로부터 아무것도 얻지, 나는 PHP 로그를 확인하고 내가 버튼을 사용하여 report.php를 호출하면 전달되는 아무것도 없다.

반면에 하드 코드 된 값으로 report.php를 실행하면 결과가 나타납니다. 내 jQuery/Javascript에 누락 된 것으로 의심됩니다.

+0

당신의 페이지에 단추를 넣으십시오. 무엇이 보이나요? AJAX 요청이 발생합니까? 응답 상태는 무엇입니까? – Christos

+1

''여기에 2 개의 ID가있어 코드 오류가 발생했을 가능성이 큽니다. –

+0

@ Fred-ii-가 지적한대로 두 ID가 없는지 사용해보십시오. –

답변

1

로직은 결함이있다. JQuery와 하나 내부의 코드는 다음 시간까지 발생하지 않습니다

당신은

인라인 하나를 제거하기 버튼을 클릭하고 또한 "button"에 버튼 유형을 변경하거나이 "submit"을 기본값으로하고 양식을 제출한다 기본 과정을 통해

<button id="button" type="button">SEARCH</button> 

JS

$(function() {  
    $("#button").click(function(e) { 
    e.preventDefault(); 
    var id = $("#idF").val(); //assigning form values 
    var report = $("#reportF").val(); 
    var date = $("#dateF").val(); 

    $.post("report.php", { 
     idP: id, 
     reportP: report, 
     dateP: date 
    }, function(data) { 
     $("#results").html(data); //updating the page with results 
    }); //trying to pass the 3 fields to report.php 
    }); 
}); 

당신은에 name를 추가하여이 문제를 단순화 할 수 있습니다 입력 요소에 대한 찬사와 양식에 serialize()를 사용하여

예 입력 :

<input type="text" name="idP" id="idF"> 

JS 당신이 개발자 도구 (크롬 F12)를 열 경우, 네트워크에 이동에 명중

$(function() { 
    // use submit event instead of click on button  
    $("#queryReports").submit(function(e) { 
    e.preventDefault(); 
    $.post("report.php", $(this).serialize(), function(data) { 
     $("#results").html(data); //updating the page with results 
    }); //trying to pass the 3 fields to report.php 
    }); 
}); 
+0

이고''는 무엇입니까? –

+0

@ Fred-ii-는 그것을 보지 못했고, 분명히 수정이 필요합니다. – charlietfl

+0

내가 게시 한 질문을 삭제 한 이전 질문에 대해 [해당 댓글] (http://stackoverflow.com/questions/41663419/unest-passing-values-to-php/41663613?noredirect=1#comment70525141_41663419)을 게시했습니다. . 나는 당신이 그것을 보았다고 생각했을 것입니다; 어쩌면 너는하지 않았다 (?). 편집 : 난 그냥 누군가가 당신을 downvote 싶지 않아요. 거기에 하나가 있다면, 그것은 나에게서 나올 수 없다는 것을 당신에게 확신시킬 수 있습니다. –

1

$("button").click() 기능을 제거하십시오. getreport() 함수는 버튼에서 onclick="getreport()"을 통해 호출하지만 함수를 호출하면 $("button").click() 함수 내부에 있기 때문에 AJAX 요청에 도달 할 수 없습니다.

+0

을 반환하고'를 반환한다는 것입니다. '? –

+0

안녕하세요 주셔서 감사합니다. 그렇지만 질문과 동일한 결과를 게시하기 전에 시도했습니다. – user7421969

+0

두 번째 ID는 브라우저에서 렌더링되지 않으므로 요소를 검사 할 때 표시되지 않습니다 (Chrome F12). 그것은 코드를 깰 수는 없지만, 난 그냥 간단한 설정으로 시도하고 그것은 깨지지 않았다. 그러나 렌더링되지 않기 때문에 클래스가 제거되거나 클래스로 바뀌면 더 좋습니다. – BramH

1

코드에서 약간의 오류가 발견되었습니다. 속성에 대해 큰 따옴표를 사용하고 요소에 두 개의 ID를 부여하지 말고 제출 버튼에서 클릭 이벤트를 처리 할 때 기본값을 방지해야합니다. 하나의 핸들러를 다른 핸들의 내부에 만들면 동일한 핸들을 사용하여 두 핸들러를 사용하지 않아야합니다. 이 시도 : 당신이 jQuery를 하나 인라인 이벤트 리스너를 혼합하고 있기 때문에

$("button").click(function(ev) 
 
     { 
 
      ev.preventDeafult(); 
 
      var id = $("#idF").val(); //assigning form values 
 
      var report= $("#reportF").val(); 
 
      var date = $("#dateF").val(); 
 

 
      $.post("report.php", {idP:id,reportP:report,dateP:date}, function(data){ 
 
       $("#results").html(data); //updating the page with results 
 
       }); //trying to pass the 3 fields to report.php 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<form id="queryReports"> 
 
     ID: <input type="text" style="text-transform:uppercase" id="idF"> Report:<input type="text" style="text-transform:uppercase" id="reportF"> 
 
     Date(dd/mm/YYYY): <input type="date" id="dateF">   
 
     <button id="button">SEARCH</button> 
 

 
</form>

+0

당신 만이''문제를 해결 한 유일한 답 (지금까지)입니다. –

+0

답변 해 주셔서 감사합니다. 예. 이중 ID에 대한 나의 실수는이 밤새 복사 붙여 넣기에서 일하고 있습니다. – user7421969

관련 문제