2014-04-01 3 views
1

안녕하세요. 저는 Codeigniter에서 사이트를 개발하고 있으며 PHP를 사용하여 게시하는 양식을 가지고 있으며 이것은 절대적으로 좋습니다. 그러나 페이지 사이를 건너 뛰기 위해 사용하고있는 페이지 측면에 작은 드롭 다운이 있습니다. 이렇게하려면 href를 사용하고 URL 내 변수를 전달하는 것입니다.전체 자바 스크립트 Ajax PHP 혼동

그러나 링크를 클릭 할 때 일부 데이터를 POST해야합니다. 단추를 사용하고 싶지 않고 ajax onclick() 이벤트를 사용하여이 버튼을 사용할 수 있는지 궁금해하고 있었습니까 ?? - 게시해야하는 데이터는 양식 내에 있습니다. 코드 구조는 대략 다음과 같습니다

<form action="main/postback" method="post"> 
<input type="hidden" name="pagereference" value="2" /> 
<input type="hidden" name="supervariable" value="7" /> 
First name: <input type="text" name="firstname"><br> 
Last name: <input type="text" name="lastname"> 

</form> 
<div> 
<ul> 
<li><a href = 'http:localhost/landing'>click me</a></li> 
</ul> 
</div> 

누군가가 내가 아약스 POST 요청을 보낼 링크를 클릭하지만, PHP 파일에서 나는 내가 내에서 데이터를 검색 할 수 있도록 할 데이터를 게시하고 그 형태. 이것이 가능한가? 그렇다면 누군가가 AJAX 예제 요청을 제공하고 PHP에서 데이터를 검색하는 방법을 내가 혼란스럽게 생각할 수도 있습니다.

<li><a onclick='myFunction()'>click me</a></li> 


<script type="text/javascript"> 
       function myFunction() 
       { 
        var "test"; 
        $.ajax({ 
          type: "POST", 
          url: "http://localhost/ciproject/assessment/test", 
          dataType: String, 
          success: function(msg){ 
           alert("Data Saved: " + msg); //Anything you want 
          } 
         }); 
        window.alert("TEST"); 
       } 
      </script> 

어떤 아이디어가 많이 주시면 감사하겠습니다, 많은 감사

답변

1

당신은 아마 그래서 나는 것을 제거하는 것이 좋습니다 인해 CORS에 (도메인 이름) 완전한 URL을 사용하여 문제가 실행됩니다,하지만 당신은 쉽게 당신이 같은 것을 사용하여 원하는 일을 할 수 있습니다

<li><a class="postFormLink">click me</a></li> 

<script type="text/javascript"> 
$('.postFormLink').on('click', function() { 
    $.ajax({ 
     type: "POST", 
     url: "/ciproject/assessment/test", 
     data: $('form').serialize(), 
     success: function(msg){ 
      alert("Data Saved: " + msg); //Anything you want 
     } 
    }); 
    window.alert("TEST"); 
} 
</script> 

페이지에 양식이 두 개 이상있는 경우 $('form') 대신 ID 또는 클래스를 추가하여 대상을 지정해야합니다.

또한 인라인 이벤트 처리기도 제거했습니다.

+0

감사 - 건방진 될 미안하지만 난 PHP에서 데이터를 다시 였는지를 것입니다 당신이 같이 간단한 예 감사합니다 – TotalNewbie

+1

@TotalNewbie 생각을 줄 수있는 방법은에서와 일반 폼의 경우 모든 폼 변수는'$ _POST' 배열에서 사용할 수 있습니다. – jeroen

+0

대단히 감사하는 ok 똑똑한 - 나는 이것을 하루 종일 기다리고 있었다. 당신을 위해 너무 많은 upvotes! !!!! – TotalNewbie

0

다음은 당신의 아약스 옵션에 넣어 경우, 다음과 같은 작업을해야합니다 : 나는 다음 시도했다. 양식을 식별해야 할 때 가장 쉬운 방법은 ID를 사용하는 것입니다.

data: $("#theFormId").serialize() 
1

다음을 시도해보십시오 :

<form action="main/postback" method="post" id="form1"> 
    <input type="hidden" name="pagereference" value="2" /> 
    <input type="hidden" name="supervariable" value="7" /> 
    First name: <input type="text" name="firstname"><br> 
    Last name: <input type="text" name="lastname"> 
</form> 

<li><a id="clickme">click me</a></li> 


<script type="text/javascript"> 

$(function() { 
    $("#clickme").click(function() { 

    var form_data = $('#form1').serialize(); 

    $.ajax({ 
     type: "POST", 
     dataType: "text", 
     url: "ciproject/assessment/test", 
     data: form_data, 
     success: function(response){ 
      alert('Job well done'); 
     } 

    }) 

    }) 
}) 
</script> 
매우 제안에 대한 많은
+0

안녕 작동하지 다음과 같은 라인을 얻을 수 없습니다 : $ ("# clickme") (클릭 (함수() {} - 나는 단순히 아무런 일이 발생해도 경고 메시지를 표시하려고하면 - 내가 잘못했을 가능성이있는 아이디어가 있습니까? – TotalNewbie

+1

오타가 있음을 깨달았습니다.하지만 이미 다른 대답을 받아 들였으므로 문제가되지 않을 수도 있습니다. – superphonic

+0

^여전히 작동하지 않습니다. 클릭시 아무 것도 트리거하지 못하는 것 같습니다 .Cookie가되어야합니까? – TotalNewbie