使用Mysql结果分配$ _POST变量

时间:2014-05-21 08:22:20

标签: php mysql forms http-post

我的数据库中有一个表格,其中包含我的网站翻译成的语言..让我说我有EN,AR和KU

表格如下:

<form id="addTags">
  <label>Friendly Name</label><br />
  <input type="text" name="FriendlyName" id="FriendlyName" /><br />
  <span style="font-size:9pt;color:#555;"><i>This is used to mark the Category</i></span><br />
  <label>URL ShortCode</label><br />
  <input type="text" name="ShortName" id="ShortName" /><br />
  <h3>
    Translate for multilingual use <span style="font-size:9pt;color:red;"><i>*Required</i></span>
  </h3><label>عربي</label><br />
  <input type="text" name="AR" id="AR" /><br />
  <label>English</label><br />
  <input type="text" name="EN" id="EN" /><br />
  <label>Kurdish</label><br />
  <input type="text" name="KU" id="KU" /><br />
  <input type="submit" value="Add Cat" class="button" align="center" />
</form>

根据我提到的表格中的语言动态添加最后三个文本输入。 我的问题是..如果我添加第四种语言,我如何在我的PHP脚本中动态捕获$ _POST参数?我想从同一个表中获取Langs并将它们分配为变量。但有可能做这样的事情吗?

<?
while($lang =$result->fetch_array()){
 $langID=$lang['langid'];
 $input_$langID=$_POST['$langID'];
}
?>

QUICL EDIT 做了类似的事情..这是快速的结果

$get_lang_id = $link->query("SELECT * FROM `tjcgLangs`");
$where = "";
$FriendlyName=mysqli_real_escape_string($link,$_POST['FriendlyName']);
$ShortName=mysqli_real_escape_string($link,$_POST['ShortName']);
$art_lang=$link->query("INSERT INTO table1 (tagFriendlyName,tagShortName) VALUES ('$FriendlyName','$ShortName');");
$insert_id=$link->insert_id;
while($get_lang=$get_lang_id->fetch_array(MYSQLI_ASSOC)){
     $language = $get_lang['langISOCode'];
     $where .= "($insert_id,'".$_POST[$language]."',".$get_lang['langID']."),";
}
$where = rtrim($where, ",");
$art_lang_m=$link->query("INSERT INTO Table2 (tagMRootID,tagMDispName,tagMLang) values $where");
$get_lang_id->free();
$link->close();
echo "DONE";

3 个答案:

答案 0 :(得分:0)

使用如下命名约定:

name="language[EN]"

然后,在PHP中,您可以遍历关联数组$_POST['language'](假设您将method="post"添加到表单中)。

foreach ($_POST['language'] as $lang => $user_input) {
    do_something_with($lang, $user_input);
}

答案 1 :(得分:0)

或者,您可以遍历所有表单数据,并删除您不需要的字段(例如提交按钮),这样您就可以创建完全动态的查询。这是一个简单的例子:

$exclude = array('submit');
foreach ($_POST as $key => $value) {
    if (!in_array($key, $exclude)) {
        $query .= $key . "=". $value;
    }
}

答案 2 :(得分:0)

制作一系列存储的语言

$ARR_LANGUAGES = ("AR", "EN", "KU");

现在检查是否设置语言

foreach($ARR_LANGUAGE as $language)
{
    if(isset($_POST[$language]))
    {
         echo $language." is Set through post !! <br/>"
    }
    else
    {
        echo $language." is Not Set !! <br/>"
    }
}