如何使用jquery刷新PHP中的特定元素?

问题描述:

我有一个选择框。在改变它的事件时,我打电话给确认框。当我点击取消按钮,然后保持更改值。 所以我只想刷新选择框而不是整个页面。如何使用jquery刷新PHP中的特定元素?

function statusChanged(obj,id){ 
    $(obj).change(function() { 
     var answer = confirm ("Are you sure update Status?"); 
     var status; 
     if(answer){ 
      status=$(this).val(); 
      //alert(status); 
      ajaxUpdate("service-providers.php", {action:"updatestatus",'status': status,'id':id}, function(data) { 
      if(data.type=="success") { 
        $("#notify").notification({caption:"Status Updated Successfully.", type:"information", sticky:false ,onhide:function(){ 
        window.location="service-providers.php"; 
       } 
       }); 
      } 
      }); 
     } 
     else{ 
      // here i want to refresh select box 
     } 
}); 
} 

的html代码:

<select id="status1" name="status1" style="width:140px;" onChange="statusChanged(this,<?php echo $applicationid; ?>);">   
                <?php 
                 if($status==3 || $status==4) 
                  echo "<option value='4'>Submitted</option>"; 
                 else 
                  echo "<option value='0'>Select</option>"; 
                ?> 
                <option value="2" <?php if($status==2) echo "selected='selected'"; ?> >Approved</option> 
                <option value="3" <?php if($status==3) echo "selected='selected'"; ?> >Rejected</option> 
               </select> 

使用此代码,否则下它只会重新选择框。

这将工作

$('#SELECTBOX_ID').prop('selectedIndex',0); 

看到了http://jsfiddle.net/TmJCE/10/工作演示。

另外我在我的本地实现了这个代码我主要做了两个改变,我从select中选择了onchange,第二个是我没有使用ajax因为你只想在确认框上点击取消工作。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> 
     jQuery(document).ready(function() { 
     jQuery("#status1").change(function() { 
     var answer = confirm ("Are you sure update Status?"); 
     var status; 
     if(answer){ 
      status=$(this).val(); 
      //I have did not call ajax 
     } 
     else{ 
      jQuery('#status1').prop('selectedIndex',0); 
     } 
    }); 
    }); 
</script> 
<?php 
    $status = 0; // I temporary added t 
    ?> 
    <select id="status1" name="status1" style="width:140px;" > 
    <?php 
    if($status==3 || $status==4) 
     echo "<option value='4'>Submitted</option>"; 
    else 
     echo "<option value='0'>Select</option>"; 
    ?> 
    <option value="2" <?php if($status==2) echo "selected='selected'"; ?> >Approved</option> 
    <option value="3" <?php if($status==3) echo "selected='selected'"; ?> >Rejected</option> 
    </select> 
+0

它不工作。 – 2013-03-19 10:20:01

+0

您是否看到演示,否则请发布您的选择框的HTML代码 – 2013-03-19 10:21:58

+0

我看演示但不工作 – 2013-03-19 11:05:10

页面加载后做:

$('select').each(function() { 
$(this).attr('original_data', $(this).val()); 
}); 

,并在你的函数做

$(this).val(this.attr('original_data')); 

经过。完美的作品。

+0

它不工作。 – 2013-03-19 10:50:07

+0

好的。我尝试了它本地和它应该如此。 首先保存选定的数据(这不一定是'选择' - 可以是所有输入或只是指定一个),并将其保存为自定义属性。 然后你只需要检索这些数据:] – imclickingmaniac 2013-03-19 11:19:35