1

我正在使用一个 jquery 插件,它掩盖了我的字段并只允许用户输入正确的值。它工作得很好,但是现在当我提交表单时,对象 IP 是一个数组,我只需要检索 IP 号(10.1.25.2/30)

结果:

$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>

现在我的 Action 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;
 }

就这些!

4

3 回答 3

4

它是一个简单的多维数组,您可以像这样检索您的值:

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

$justip现在变量中只有 IP 地址。

您可能应该阅读有关数组的文档: http: //ch.php.net/manual/en/language.types.array.php

于 2011-03-03T13:13:47.667 回答
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]也是如此,第二个表单也是如此,依此类推。

于 2011-03-03T13:33:47.413 回答
0

顺便说一句,如果你从

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

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

您将摆脱数组(注意[]从输入的名称属性中删除)。

于 2011-03-03T13:49:39.580 回答