检查是否发生了特定格式的POST

时间:2015-05-28 10:14:54

标签: php post

我有一个以下的html标记(这是一个让你知道的基本结构,因为有些人会问我标签的位置。考虑它在那里。)

<input type="text" name="set_val_1" id="set_val_1" value="1"/>
<input type="text" name="set_val_2" id="set_val_2" value="2"/>
<input type="text" name="max_risk_id" id="max_risk_id" value="5"/>
<input type="submit" value="Enter" name="submit_button"/>

现在,当提交表单时,我希望有一个代码来检测是否以“set_val_”格式显示任何POST。我希望我能让你明白我实际要问的是什么。

基于我的问题的算法:

if(isset($_POST['something with the pattern (set_val_)']))
{
     $flag = 1;
     $val_string = "";
}

if($flag == 1)
{
    $max_id = $_POST['max_risk_id'];
    for($i = 1; $i<=$max_id; $i++)
    {
       if(isset($_POST['set_val_'.$i]))
        {
            $val_string = $val_string. $_POST['set_val_'.$i].",";
        }
    }
}

如何检查某个帖子是否以特定名称格式发生?

4 个答案:

答案 0 :(得分:1)

我根本不明白这个问题,但也许你的意思是这样的?

<?php
// for testing
$post = array (
    "abc" => "123",
    "set_val_1" => 1,
    "set_val_2" => 2
);
$val_string = "";
foreach ($post as $key => $value) {
    if (strpos($key, "set_val_") === 0) {
        $parts = explode("_", $key);
        if (count($parts) != 3) {
            continue;
        }
        if (!is_numeric($parts[2])) {
            continue;
        }
        $val_string .= $value;
    }
}

print_r($val_string);

答案 1 :(得分:1)

您好您可以通过

实现这一目标
$post_keys =  array_keys($_POST);
    $matched_keys = preg_grep('/^set_val_/', $keys);
    if(count($matched_keys) > 0 ){
         $flag = 1;
         $val_string = "";
    }

虽然我认为方法必须像这样改变:

创建要在服务器端检查的输入元素数组

<input type="text" name="set_val[1]" id="set_val_1" value="1"/>
<input type="text" name="set_val[2] id="set_val_2" value="2"/>
<input type="text" name="max_risk_id" id="max_risk_id" value="5"/>
<input type="submit" value="Enter" name="submit_button"/>

现在在服务器端,您可以将其检查为

      if(isset($_POST['set_val'])){
            $flag = 1;
            $val_string = "";
       }


        if($flag == 1)
        {
            $max_id = $_POST['max_risk_id'];
            for($i = 1; $i<=$max_id; $i++)
            {
               if(isset($_POST['set_val'][$i]))
                {
                    $val_string = $val_string. $_POST['set_val'][$i].",";
                }
            }
        }

答案 2 :(得分:0)

$(document).ready(function() { $('input').focusout(function() { window.setTimeout(function() { if ($(':focus').length === 0) { $("input").prop('disabled', true); } }, 5); }); }); 函数会检查您的特定isset()元素是否已实际收到。格式化使用它。

$_POST

答案 3 :(得分:-1)

使用以下代码,

 if (isset($_POST['submit_button'])){
    //rest of your code
    }

这将显示数据是否发布。