2010-07-26 3 views
2

나는 약간의 시간 동안 php/CI로 코딩을 해왔고, 그것의 매달리기를 시작하고있다. 그러나 나는 jQuery + 일부 아약스 물건을 사용하기 위해 도약하려고 노력하고있다. 그리고 나는 그것을 얻는 것처럼 보일 수 없다. 일하다. 대본이 보이지 않는 것 같습니다.Ajax에서 첫 번째 시도, 스크립트가 표시되지 않습니까?

내가하고 싶은 것은 사용자가 제출 버튼을 클릭 할 때 java/test 함수를 호출하는 것입니다. if (ajax)와 같은 것을 추가하고 싶습니다. 이것이 폼 데이터에있는 이유입니다.하지만 submit 함수를 matt라고 부르지 않습니다. - submit 함수를 발생시키지 않도록 false를 추가했습니다. , 아직 그렇습니다.

내 코드는 어떤 도움이 될 것입니다. 감사합니다

java.php // 컨트롤러

<?php 

class Java extends Controller{ 

    function index(){ 
     $this->load->view('java_view'); 
    } 

    function submit(){ 
     $one = $this->input->post('one'); 
     $two = $this->input->post('two'); 

     echo $one; 
    } 
      function test(){ 
     $one = $this->input->post('one'); 
     $two = $this->input->post('two'); 

     echo $two; 
    } 


} 

java_view.php // viewfile

<html> 
<header> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 

<script type="javascript"> 
    $(document).ready(function(){ 
     $('#submit').click(function(){ 

      var form_data = { 
       one: ('#one').val(), 
       two: ('#two').val(), 
       ajax: '1', 
      }; 

      $.ajax({ 
      url: "<?php echo site_url('java/test'); ?>", 
      type: 'POST', 
      data: form_data, 
      success: function() { 
       alert('success'); 
      } 
      }); 
          return false; 
     }); 
    }); 
</script> 

</header> 

<body> 

<?php 

echo form_open('java/submit'); 

//setting up the fields 
$form_data = array(
    'name' => 'one', 
    'id' => 'one', 
); 

echo "<p> One </p> <br/>"; 

echo form_input($form_data); 

$form_data = array(
    'name' => 'two', 
    'id' => 'two', 
); 

echo "<br/> <p>Two</p> <br/>"; 

echo form_input($form_data); 

$form_data = array(
    'name' => 'submit', 
    'id' => 'submit', 
    'value' => 'Submit', 
); 
echo "<br/>"; 

echo form_submit($form_data); 
echo form_close(); 

답변

5

이 줄 :

$('#submit').onclick(function(){ 

가되어야한다

$('#submit').click(function(){ 

나는 #submit이라고 생각하지 input type="submit" 그렇지 않으면 당신은 클릭 핸들러의 끝에서 return false을 넣어하지 않는 페이지가 다시로드됩니다.

추가 정보 :

http://api.jquery.com/click/

업데이트 :

이 (추가 live와 다른 몇 가지 수정) 시도 :

$(document).ready(function(){ 
    $('#submit').live('click', function(){ 

     var form_data = { 
      one: ('#one').val(), 
      two: ('#two').val(), 
      ajax: '1', 
     }; 

     $.ajax({ 
     url: "<?php echo site_url('java/test'); ?>", 
     type: 'POST', 
     data: form_data, 
     success: function() { 
      alert('success'); 
     }); 

     return false; 
    }); 
}); 
+0

고마워,하지만 정확히 내가 뭘 찾고 있었는지 (내 잘못이 명시 적이지 않음) 내 모습을 수정했습니다. 리턴 거짓 비트도 추가되었습니다. 감사합니다 – tshauck

+0

@tshauck : 업데이트 된 답변을 참조하십시오. 업데이트 된 코드를 사용해보십시오. – Sarfraz

+0

안녕하세요, 나는 코드를 시도했습니다, 그것은 여전히 ​​자바 스크립트를 클릭하면 것이라고 제출 기능을 발사합니다. – tshauck

2

더 나은를? 동적 모두에서 DOM을 업데이트하거나 onclick 이벤트가 (이 라이브를 사용하는 것이 안전하면 페이지로드 당 이상 호출 할 수있는 경우

$('#submit').live("click", function(){ 

)

http://api.jquery.com/live/

+0

안녕하세요, 좋은 조언, 내 게시물을 내가 무엇을 위해 가고 있었는지 편집했습니다. 니가 다시 볼 수 있으면 좋을거야. 감사. – tshauck

1

그냥 생각. .. JavaScript에서 Ajax 호출을위한 URL을 명시하는 것을 explicitaly 시도 했습니까? URL 경로를 반향시키기 위해 PHP로 도약하는 것을 이해하지 못할 수 있습니다.

+0

나는 그게 좋겠다고, 나는 그것을 하드 코드 테스트하고 작동하지 않습니다. 생각해 줘서 고마워. – tshauck

관련 문제