2013-06-01 4 views
2

자바 스크립트 아약스에서 작성한 코드가 있고 jquery로 같은 코드를 전송하는 것을 좋아합니다.PHP로 Jquery Ajax 사용하기

이것은 내 자바 스크립트 아약스 코드입니다.

function cascadeCountry(value) { 
    if (document.getElementById("stateprovince_auto") != null) { 
    if (value != '') { 
     http.open('get', url+'cascade/cascade_sign.php?a=country&v=' + value); 
     document.getElementById('stateprovince_auto').innerHTML = "  " + loadingTag; 
     http.onreadystatechange = handleResponse; 
     http.send(null); 
    } 
    //alert(value); 
    } 
} 

내 PHP 코드.

case 'country': 
     echo '|||stateprovince_auto|:|' . stateOptions() 
      . '|||county_auto|:|' . '<input name="txtcounty" type="text" size="30" maxlength="100" />' 
      . '|||city_auto|:|' . '<input name="txtcity" type="text" size="30" maxlength="100" />'; 
      //. '|||txtzip|:|' . '<input name="txtzip" type="text" size="30" maxlength="100" />'; 
     break; 

function stateOptions() { 
    $state = new StateProvince(); 
    $data = $state->get_stateOptions(trim($_GET['v']), 'Y'); 

    if (count($data) < 1) 
     return '<input name="txtstateprovince" type="text" size="30" maxlength="100" />'; 

     $ret .= ' <select class="select" name="txtstateprovince" onchange="javascript: cascadeState(this.value, this.form.txt_country.value,\'txtcounty\');" >'; 

    $ret .= '<option value="">'.format_lang('select_text').'</option>'; 

    foreach ($data as $k => $y) { 
     if ($k!='AA') { 
      $ret .= "<option value='$k'>$y</option>"; 
     } 
    } 
    unset ($data); 

    return $ret .= '</select>'; 
} 

내 오래된 HTML 코드.

<tr> 
    <td><img src="{$skin_images_path}required.gif" alt="" /></td> 
    <td><span class="label">{lang mkey='label' skey='country' }</span></td> 
    <td> 

    <select name="txt_country" id="txt_country" onchange="javascript: cascadeCountry(this.value,'txtstateprovince');" > 
     {html_options options=$country selected=$smarty.session.loc.country} 
    </select> 
    </td> 
</tr> 

<tr> 
    <td>&nbsp;</td> 
    <td><span class="label">{lang mkey='label' skey='state' }</span></td> 
    <td> 
     <div id="stateprovince_auto"> 

     {if $lang.states|@count > 0} 
      <select class="select" name="txtstateprovince" onchange="javascript: cascadeState(this.value, this.form.txt_country.value,'txtcounty');" > 
      {html_options options=$lang.states selected=$smarty.session.loc.stateprovince} 
      </select> 
     { else } 
      <input class="text_field required" name="txtstateprovince" type="text" size="30" maxlength="100" value="{$smarty.session.loc.stateprovince}" /> 
     { /if}     
     </div> 
     </td> 
</tr> 

<tr> 
    <td>&nbsp;</td> 
    <td><span class="label">{lang mkey='label' skey='county' }</span></td> 
    <td> 
     <div id="county_auto"> 

      { if $lang.counties|@count > 0} 
      <select class="select" name="txtcounty" onchange="javascript: cascadeCounty(this.value,this.form.txt_country.value, this.form.txtstateprovince.value,'txtcity');" > 
      {html_options options=$lang.counties selected=$smarty.session.loc.countycode} 
      </select> 
      { else } 
      <input name="txtcounty" type="text" size="30" maxlength="100" value="{$smarty.session.loc.countycode}" /> 
      { /if} 

     </div> 
    </td> 
</tr> 

<tr> 
    <td>&nbsp;</td> 
    <td><span class="label">{lang mkey='label' skey='city' }</span></td> 
    <td> 
     <div id="city_auto"> 
      { if $lang.cities|@count > 0} 
      <select class="select" name="txtcity" > 
       {html_options options=$lang.cities selected=$smarty.session.loc.citycode} 
      </select> 
      { else } 
      <input name="txtcity" type="text" size="30" maxlength="100" value="{$smarty.session.loc.citycode}" /> 
      { /if} 

     </div> 
    </td> 
</tr> 

이것은 내 새 Jquery Ajax 코드입니다.

$(document).ready(function() 
    { 
      /**country **/ 
      $("#txt_country").change(function(){ 
      var country=$(this).val(); 
      var dataString = 'country='+ country+"&a=s"; 
      $("#countrystates").html(retrieving); 
      $.ajax({ 
       type: "POST", 
       url: url+"/OPJB_cascade/location.php", 
       data: dataString, 
       cache: false, 
       success: function(html){$("#countrystates").html(html);} 
      }); 
      }); 
}); 

새로운 PHP 코드.

if(allow_country_state == 1) 
    { 
     $countryStates = CountryStates::getStates($country); 
     if($countryStates) 
     { 
      echo '<select class="selectField" name="txt_states" id="txt_states" style="width:200px;">'; 
      echo '<option></option>'; 
      foreach ($countryStates as $r) 
      { 
       echo '<option value="'.$r->code.'">'.$r->name.'</option>'; 
      } 
      echo '</select>'; 
     } 
     else 
     { 
      echo '<input type="text" id="txt_states" name="txt_states" style="width:200px;" class="textField" maxlength="100" />'; 
     } 

     echo '|||county_auto|:|' . '<input name="txt_region" id="txt_region" type="text" size="30" maxlength="100" />&nbsp;&nbsp;'; 
    } 

내 새 HTML 코드.

<tr> 
     <td> <label class="required_star">*</label> </td> 
     <td> <label>{lang mkey='label' skey='country'}</label> </td> 
     <td> 
     <select name="txt_country" id="txt_country" class="selectField"> 
      {html_options options=$country selected=$smarty.session.loc.country} 
     </select> 
     </td> 
     <td>&nbsp;</td> 
    </tr> 

    {if $allow_country_state == 1 } 
     <tr> 
      <td>&nbsp;</td> 
      <td> <label>{lang mkey='label' skey='countryStates'}</label> </td> 
      <td> 
      <div id="countrystates"> 
      {if $countryStates|@count > 0} 
       <select class="selectField" name="txt_states" id="txt_states"> 
        {html_options options=$countryStates selected=$smarty.session.loc.countrystates} 
       </select> 
      {else} 
       <input type="text" id="txt_states" name="txt_states" size="30" class="textField" value="{$smarty.session.loc.countrystates}" maxlength="100" /> 
      {/if} 
      </div> 
      </td> 
      <td>&nbsp;</td> 
     </tr> 
    {/if} 
    <tr> 
     <td>&nbsp;</td> 
     <td> <label>{lang mkey='label' skey='region'}</label> </td> 
     <td> 
     <div id="countryregion"> 
     {if $CountryCounty|@count > 0} 
      <select class="selectField" name="txt_region" id="txt_region"> 
       {html_options options=$CountryCounty selected=$smarty.session.loc.countryregion} 
      </select> 
     {else} 
      <input type="text" id="txt_region" name="txt_region" size="30" class="textField" value="{$smarty.session.loc.countryregion}" maxlength="100" /> 
     {/if} 
     </div> 
     </td> 
     <td>&nbsp;</td> 
    </tr> 

내 문제는 내가 국가를 선택할 때 주와 카운티 데이터를 삭제하지만 내 새로운 코드로 국가가 군을 삭제하지만 도착 된 코드이다.

누군가 내가 여기서 잘못하고있는 것을 알려주실 수 있습니까?

답변

1

당신이 다음 줄에 그렇게하도록 지시 때문에 예, 상태 만이 지워지지 :

$("#countrystates").html(html); 
+0

그들은 어쨌든 내가 카운티도 지워지지 얻을 수있다. jquery – user1509201

+0

을 사용하면이 $ ("# mydropdownlist") .val ("thevalue");와 같은 드롭 다운 값을 설정하거나이 노드와 같은 드롭 다운에서 모든 노드를 제거 할 수 있습니다. empty(); ' – MaVRoSCy

+0

여전히 같은 문제입니다. 내 jquery 아약스 codce 잘못 생각합니다 – user1509201