2011-03-03 160 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属性去掉[])。