使用PHP POST接收表单输入数据

时间:2011-04-04 15:39:07

标签: php jquery

我正在使用jQuery tag-it插件,它基本上有一个输入字段。一切正常,但我无法通过PHP提交表单来接收输入字段值。

以下是表单部分:

<form action="<?=$PHP_SELF?>" method="post">        
        <div class="line">
            <label for="tags">Tags</label>
            <ul id="mytags"></ul>
        </div>      
       <input name="submit" value="Submit" type="submit" />
</form>

这是PHP部分:

<?
    if ($_POST[submit]) {

    $tags = $_POST[mytags];
    echo $tags;

    }

    ?>

插件的演示在这里:http://levycarneiro.com/projects/tag-it/example.html 和javascript代码在这里:http://levycarneiro.com/projects/tag-it/js/tag-it.js 我会感谢任何帮助。

7 个答案:

答案 0 :(得分:4)

in tpl

<script type="text/javascript">
$(document).ready(function() {
    $("#tags-input").tagit({
        fieldName: "tag[]",
        availableTags: ["c++", "java", "php", "javascript", "ruby", "python", "c"]
    });
});
</script>

在backend print_r($ _ POST)中使用fieldName:“tag []”属性并检查它将显示的内容

答案 1 :(得分:1)

ul不是要提交的表单元素,它是一个UI元素。你需要在数组索引周围使用引号,如下所示: if (isset($_POST['submit'])) {

答案 2 :(得分:1)

代码应如下所示:

<?
if ($_POST['submit']) {

$tags = $_POST['mytags'];
echo $tags;

}

?>

你忘记了封闭的'

如果您忘记了php将$_POST[submit]中的提交视为常量

编辑:

试试这个:

<?
var_dump($_POST);
?>

答案 3 :(得分:0)

应该有 NO 发布的数据

您的代码不使用任何输入字段!

答案 4 :(得分:0)

acutal标签存储在为每个标签创建的表单字段中:

function create_choice (value) {    
  // some stuff
  el += "<input type=\"hidden\" style=\"display:none;\" value=\""+value+"\" name=\"item[tags][]\">\n";
  // some other stuff
}

因此,您必须注意不要使用'mytags',而应该注意PHP代码中的 $ _ POST ['item'] ['tags'] ,然后会为您提供一系列标记。< / p>

答案 5 :(得分:0)

查看您的插件,它似乎会在您添加标记时动态创建隐藏的输入字段。

假设代码的一部分实际工作,请将以下内容放入PHP代码中。

<?php 
    var_dump($_POST); //this has to be in the page you POST to
?>

查看您的所有代码是否都显示出来。如果是,那么你的JS工作,你的PHP有问题。 正如用户@ITroubs所提到的,您应引用数组索引。看看是否能解决问题。

如果没有显示数据,那么您的JS插件无法正常工作。

使用firebug,添加几个标签并检查列表的LI元素内部,看看是否正在创建任何隐藏的INPUTS。

还要检查是否有任何JS错误被报告。

答案 6 :(得分:0)

经过测试和解决:

<form action="<?=$PHP_SELF?>" method="post">        
        <div class="line">
            <label for="tags">Tags</label>
            <ul id="mytags" name="item[tags][]"></ul>
        </div>      
       <input name="submit" value="Submit" type="submit" />
</form>

这是PHP部分:

    <?
        if ($_POST[submit]) {

    $tags = $_POST["item"]["tags"];
foreach($tags as $i=>$v)
{
     $tagsf .= $v;
     if($i < (count($tags)-1))
    $tagsf .= ",";
}

echo $tagsf;
//This shows the tags with ",". Example: dog,cat,bird,onion

        }

    ?>