2011-09-03 3 views
0

내 프로젝트는 PHP/MySQL입니다. 나는 Smarty를 템플릿 엔진으로 사용하고 있습니다. jQuery .change 다른 .php 파일로드

나는 나의 유식 파일에 < 선택> 태그가 :

maps.tpl -

<script src="http://code.jquery.com/jquery-1.5.js"></script> 
    <form method="post" action="maps.php"> 

     <td colspan="3"> 

      <select id="cmdview" name="cmd"> 
       <option value=""></option> 
       <option value="commdata" {if $cmdOn == "commdata"}selected="true"{/if}>Communications</option> 
       <option value="contacts" {if $cmdOn == "contacts"}selected="true"{/if}>Contacts</option> 
       <option value="enrollment" {if $cmdOn == "enrollment"}selected="true"{/if}>Enrollment</option> 
       <option value="all" {if $cmdOn == "all"}selected="true"{/if}>All Schools</option> 
      </select> 

      <input type="submit" name="doSwitch" value="Submit" /> 

     </td> 

     <div id="append"></div2> 

    </form> 

지금까지, 내 ​​jQuery 코드는 값이 선택된 찾습니다

{literal} 

<script> 
$('#cmdview').change(function() { 
    //alert('Handler for .change() called.'); 
     var str = ""; 
     url = "maps_append.php"; 

     $("select option:selected").each(function() { 
      str += $(this).text() + " "; 
      }); 
     $('#append').text(str); 
      }) 
      .change(); 
</script> 
{/literal} 

나는 "cmdview"의 값을 듣고 그 값을 파일에 게시하기 위해 jQuery가 필요하다 : maps_append.php. 다시로드하지 않고 현재 파일 (maps.php/maps.tpl)을 .append/.change로 바꾸려면 해당 파일이 필요합니다.

그러나 jQuery는 절반 밖에 작동하지 않습니다. jQuery는 내가 전달하려고하는 값을 찾았고 id # #end를 사용하여 < .d.i.v.> 태그에 올바른 값을로드하려고했습니다. 내가 할 수없는 유일한 방법은 가치를 취하고 실제로 maps_append.php에 게시하는 것입니다.

도움이 될 것입니다!

감사합니다.

추신 :

url = "maps_append.php"; 
    $.post(url, { cmd: cmdview, value: str } , 
     function(data) { 
      var content = $(data); 

      $("#result").append(content); 
     } 
    ); 
    $term_input.val(''); 
}); 

편집 :이 같은으로

$('#append').text(str); 
     }) 
     .change(); 

:

이 교체 할 필요가 : 나는 변화가이 같은 것이라고 생각

현재 파일은 maps.php입니다. 나는 지금이 코드 maps.php하는 maps_append.php를 추가 한 :

<script> 
$('#cmdview').change(function() { 
    //alert('Handler for .change() called.'); 
     var str = ""; 
      url = "maps_append.php"; 
     url = "maps_append.php"; 

     $("select option:selected").each(function() { 
      str += $(this).text() + " "; 
      }); 
     $('#append').load(url); 
      }) 
      .change(); 
</script> 

난 그냥 지금 선택 태그의 값을 게시해야합니다!

<script> 
    $('#cmdview').change(function() { 
     //alert('Handler for .change() called.'); 
      var str = ""; 
       url = "maps_append.php"; 
      $("select option:selected").each(function() { 
       str += $(this).text() + " "; 
       }); 
      $.post(url, { str: "$cmdOn" } , 
       function(data) { 
        var content = $(data); 
      $('#append').load(url); 
       }) 
       .change(); 

        }); 
    </script> 

는 이제 maps_append.php 페이지는 내가 선택 태그의 값을 변경할 때 maps.php에 추가 :

는 가까이 계속 ...이 편집을 참조하십시오. maps_append.php가 나타날 때만 select 태그의 값을 포함하면됩니다.

답변

0

나는 당신이 여기에서하고있는 것에 대한 세부 사항을 이해하지 못한다 - 모든 코드는 괜찮아 보이지만 계획은 조금 이상하게 보인다.

일반적으로 프로그램에서 소스를 변경하지 않아도됩니다. 대신 데이터베이스에 코드 저장소 데이터가 있고 코드는 데이터베이스에 의해 구동되어 다른 출력을 생성합니다.

어쩌면 콘텐츠로하고 싶은 것입니다. 데이터베이스에 저장하고 표시하는 페이지가있을 것입니다.http://frinity.blogspot.com/2008/06/load-remote-content-into-div-element.html

+0

, 기준이 페이지에 추가됩니다 어떤 옵션이 선택되어 온 :


는 jQuery를 통해 내용이 다음

function loadContent(elementSelector, sourceUrl) { $(""+elementSelector+"").load("http://yoursite.com/"+sourceURL+""); } 

이 링크를 참조 사용로드합니다. "enrollment"가 선택된 값이면 다른 양식 입력이 추가됩니다. "연락처"가 선택되면 다른 입력이 나타납니다. "등록"을 선택하면 데이터의 크기가 제한되어야합니다. 그래서, 양식 입력/정수 - 텍스트 입력이 필요합니다. "통신"값을 선택한 경우 타임 스탬프 값이 필요합니다. 그래서 캘린더 애플릿을로드하거나 날짜/월/년을 선택합니다. 페이지에 첨부하십시오. 더 많은 양식 입력이 필요하지만 양식 입력은 사용자가 선택한 항목에 달려 있습니다. – Charlie

+0

일반적으로 PHP 페이지는 변경하지 않습니다. 한 명 이상의 사용자가 동시에 페이지를 사용할 수 있다는 것을 기억하십시오. AJAX로이를 수행하는 일반적인 방법은 현재 HTML에 추가하는 것입니다. 진행 상황을 저장할 수도 있습니다. 나중에 다시 돌아 오면 페이지를 올바르게 구성 할 수 있습니다. 두 번째 경우에는 데이터베이스가 필요합니다. – Hogan

+0

현재 사용자의 진행 상태를 저장하여 검색 값이 남아 있도록하는 것이 좋을지 만, 현재는 주요 문제가 아닙니다. 나는 실제로 당신이 말하는 것을하기 위해 노력하고 있습니다 - 현재 HTML에 추가하십시오. 현재 파일에 다른 파일을 추가하고 있습니다. maps.php가 현재 파일입니다. 선택 값은 maps_append.php에 게시되고 maps_append.php는 maps.php에 추가됩니다 – Charlie