如何从逗号分隔的字符串变量中删除一个值?

时间:2012-11-07 05:40:38

标签: php javascript html

我想从逗号分隔的字符串变量中删除一个值 例如hdnListCL =“'ABC','PQR','XYZ'” 我想删除其中任何一个,如何在不将其转换为数组的情况下执行此操作? HTML代码

<input type="hidden" name="hdnlistCL" id="hdnlistCL"/>
<table>
 <tr>
    <td>
            <div id="ProjList"><?php print $strLocName; ?></div><br/>
         <input type="text" name="txtCommonLocation" id="txtCommonLocation" size="40" value=""/>
         <img src="images/plus.gif" title="Click Here" onclick="AddNewLocation()" style='cursor:pointer;' align="right"/>  </td>    
     </tr>
</table>

的javascript

<script type="text/javascript" src="../scripts/jquery.min.js"></script>
<script type="text/javascript">
function AddNewLocation()
{
    var listCL = "";
    this.strProjName;
    if ( typeof strProjName == 'undefined' ) {
          strProjName = '';
    }
    var newLoc = document.getElementById('txtCommonLocation').value;
    document.getElementById('txtCommonLocation').value = "";
    if(document.getElementById('hdnlistCL').value == '')
    { 
       document.getElementById('hdnlistCL').value =newLoc;
    }
    else
    {
      document.getElementById('hdnlistCL').value += ","+newLoc;
    }
      listCL  = newLoc; 
      if(listCL != '')  
        {
             strProjName = strProjName + '<div id="'+listCL+'">'+listCL+'<div  class="close" onclick="removeLocation(\''+listCL+'\')"></div></div>';            
        }
    //  alert(strProjName);
        $('#ProjList').html(strProjName);   
}
function removeLocation(pLocation)
{
    var hdnListLocation = document.getElementById('hdnlistCL').value;
    if(window.confirm("Are you sure you want to delete this?"))
                {      
                            url = 'test_st.php';
                            $.post(
                                url,
                                {"act":"Delete","DelLocation":pLocation,"hdnListLocation": hdnListLocation},
                                function(responseText){
                                    alert(responseText);
                                    return false;
                                  window.location="test_st.php";                    
                                },
                                "html"
                            );
                            return false;
                }   
}
</script>

php code

<?php
 if(isset($_POST['act']))   
       $act = $_POST['act'];

        if($act == "Delete")
        {
            $arrhdnListLocation     = explode(",", $_POST['hdnListLocation']);
            if(in_array($_POST['DelLocation'],$arrhdnListLocation))
            {
            print("I want to remove'".$_POST['DelLocation']."' from hdnlistCL");        
                    exit();
            }
            else
            {
                print("No");
                exit();
            }

        }
?>

enter image description here

当我点击关闭按钮时,我想从hdnlistCL中删除该位置。我怎么能这样做? hdnListCL的值是ABC,PQR,XYZ我想从这个

中删除PQR

2 个答案:

答案 0 :(得分:2)

请试试这个

$hdnListCL ="'ABC','PQR','XYZ'";
$hdnListCL=explode(',',$hdnListCL);
$index = array_search('PQR',$hdnListCL);
if($index !== false){
    unset($hdnListCL[$index]);
}
$hdnListCL=implode(',',$hdnListCL);
print_r($hdnListCL);

答案 1 :(得分:2)

$string = "'ABC','PQR','XYZ'";
$remove  = "'PQR'";

// you can use array_diff method to remove specific array item
$result = array_diff(str_getcsv($string), array($remove))
echo implode(',', $result);  // output is "'ABC','XYZ'"

php小提琴示例:http://phpfiddle.org/main/code/v260-p3cf