2011-03-03 161 views
1

我正在使用jquery插件,它掩蓋了我的字段並允許用戶只鍵入正確的值。它工作得很好,但現在當我提交表單,對象IP是一個數組,我需要檢索只有IP數(10.1.25.2/30)如何僅獲取IP地址/子網

結果:

$ip = $_POST['ipaddress']; 
print_r($ip); 

//It returns to me 
Array ([abcd] => Array ([0] => 10.1.25.2/30)) 

我需要爆炸陣列或做這樣的事情..請幫助。

整個代碼:

HTML頁面jQuery插件包括:

<script src="scripts/jquery.min.js" type="text/javascript"> 
<script src="jquery.validate/jquery.caret.js" type="text/javascript"></script> 
<script src="jquery.validate/jquery.ipaddress.js" type="text/javascript"></script> 

    <script> 
     $(function(){ 
     $('#ip').ipaddress({cidr:true}); 
     });  
    </script> 

<form name="form1" method="post" action="equipAction.php"> 
<tr> 
    <td>IP</td> 
    <td><input name="ipaddress[abcd][]" id="ip" type="text" value="<?=$ip;?>" /> 
    <b>»» IP atribuído ao contrato do Cliente/Torre </b> </td>  
</tr> 
<input type='submit' name="alt" value="Edit" class="btn" /> 
</form> 

現在我的行​​動PHP代碼:

if ($_POST["alt"] == "Edit") { 

    # Dados do form 
    $idequip = $_GET['id']; 
    $contrato = $_POST['contrato']; 
    $transmi = $_POST['transmissor']; 
    $ip  = $_POST['ipaddress']; 
    $local = $_POST['local']; //tipo_equip 
    $obs  = $_POST['obs']; 
    $usado = $_POST['usado']; 

    echo "<br />"; 
    print_r($ip); 




    # Atualiza dados do equipamento mestre 
    # desenvolvendo 
    $res = mysql_query("UPDATE equipment SET idtorre='$transmi', ip='$ip', tipo_equip='$local', obs='$obs', usado_cliente='$usado' WHERE id='$idequip'") or die("Erro na query: atualização equipamento mestre."); 
    #header("Location: equipamento_adm.php?return=3&ip=$control"); 
    exit; 
} 

這一切!

+0

請問您可以發佈您的HTML和JavaScript代碼嗎? – Albireo 2011-03-03 13:14:59

+0

它是,整個代碼! – B4NZ41 2011-03-03 13:42:44

回答

4

這一個簡單的多維數組,你可以這樣獲取:你的價值:

$ip = $_POST['ipaddress'];  
$justip = $ip['abcd'][0]; 

現在有隻在$justip變量的IP地址。

你也許應該瞭解陣列的文件:http://ch.php.net/manual/en/language.types.array.php

+0

仍然不清楚..我會發布我的代碼.. – B4NZ41 2011-03-03 13:16:54

+2

'$ ip = $ _POST ['ipaddress'] ['abcd'] [0]' – 2011-03-03 13:23:09

+0

@Fernando我更新了我的答案 – krtek 2011-03-03 13:25:54

1

如何多種形式這個頁面上?

它出現在數組中而不是$ _POST ['ipaddress']中的原因是:<input name="ipaddress[abcd][]" id="ip" type="text" value="<?=$ip;?>" />,格式爲html。 [abcd][]導致它使ipaddress成爲一個數組,其中包含一個數組,其中第一個可用鍵用「abcd」鍵填充表單中的值。如果你做了<input name="ipaddress" id="ip" type="text" value="<?=$ip;?>" />那麼IP地址將通過$_POST['ipaddress']直接提供。

如果有多個的形式,然後使用name="ipaddress[]"和各形式將填充$_POST['ipaddress']陣列的關鍵,所以$_POST['ipaddress'][0]將是第一形式和$_POST['ipaddress'][1]將是第二形式等。

0

順便說一句,如果你從

<input name="ipaddress[abcd][]" id="ip" type="text" value="<?=$ip;?>" /> 

切換到

<input name="ipaddress[abcd]" id="ip" type="text" value="<?=$ip;?>" /> 

你將擺脫數組(注意從輸入的name屬性去掉[])。