隐藏的div(display:none)和表单输入是否与PHP有关?

时间:2014-03-08 06:23:09

标签: javascript php forms

我正在生成(可能是困难的)输入集,范围从1到15。

用户从下拉列表中选择输入数量。然后显示适当的输入集,如select_num_fields.php。

中所示
<?php 
// Parse the form data and add inventory item to the system
$messageDeveloper = "";
if (isset($_POST['url'])) {

    $commaVar = ",";
    $varCharVar = "VARCHAR(255) NOT NULL";
    $pid = mysqli_real_escape_string($db_conx, $_POST['thisID']);
    $url = preg_replace("/[^A-Za-z0-9?!]/",'', $_POST['url']);
    $cleanOne = preg_replace("/[^A-Za-z0-9?!]/",'', $_POST['usernameOne']);
    echo "<pre>";
var_dump($cleanOne);
echo "</pre><br>";


// ------1---------------------------------------------------------------------------------------------------------------------------------------------------
    if (isset($cleanOne)) {
        // filter everything but numbers and letters preg_replace
        $usernameOne = " $cleanOne $varCharVar $commaVar";

    }
    else if(!isset($cleanOne)) {

        $usernameOne = "";

    }
//other ifs go here to complete a tr 

    // See if that product name is an identical match to another product in the system
    $sql = "
    CREATE TABLE IF NOT EXISTS $url (
                 id int(11) NOT NULL auto_increment,
                 $url varchar(255) NOT NULL,
                 $usernameOne
                 created date,
                 PRIMARY KEY (id),
                 UNIQUE KEY $url ($url)
 )
    ";
echo "<pre>";
var_dump($sql);
echo "</pre><br>";
$result = mysqli_query($db_conx,$sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR);


    if ($query === TRUE) {
        header("location: creator_test.php?tableDone=1"); 
        exit();
        } else {
        header("location: creator_test.php?tableDone=0"); 
        exit();
        }
}
?>

<form action="creator_test.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
    <h3 style="padding-left:10px;">&darr; Add New Page To List &darr;</h3>
    <h4>Create page table for database</h4>
<div id="colorBlocks">

    <?php include_once("includes/developer/make_table_developer_form.php");?>
    <br /><br /><span style="clear:both;">Select number of variables and name them. This will also determine table structure.</span>
    <br />
    <br />
<?php include_once("includes/developer/select_num_fields.php");?>


<input type="submit" name="button" id="button" value="Add This Item Now" /> 
</form>

make_table_developer_form.php

<p id="di1" style="clear:both;display:table;margin-bottom:15px;margin-top:0;">
            <p id="di2" style="float:left;width:55px;text-align:right;margin-top:0;">
                URL:
            </p>
            <p id="di3" style="float:left;margin-left:10px;margin-top:0;">
                <input name="url" type="text" id="url" size="64" />
            </p>
    </p>
    <p id="di4" style="clear:both;display:table;margin-bottom:15px;margin-top:0;">

        <p id="di5" style="float:left;width:55px;text-align:right;margin-top:0;">
                Status:
        </p>
        <p id="di6" style="float:left;margin-left:10px;margin-top:0;">
                <select name="status" id="status">
                      <option value="Ready">Ready</option>
                      <option value="Live">Live</option>
                      <option value="Hold">Hold</option>
                </select>
        </p>
    </p>

select_num_fields.php

<select id="selectMe">
    <option value="div1">1</option>
    <option value="div2">2</option>
    <option value="div3">3</option>
    <option value="div4">4</option>
    <option value="div5">5</option>
    <option value="div6">6</option>
    <option value="div7">7</option>
    <option value="div8">8</option>
    <option value="div9">9</option>
    <option value="div10">10</option>
    <option value="div11">11</option>
    <option value="div12">12</option>
    <option value="div13">13</option>
    <option value="div14">14</option>
    <option value="div15">15</option>
</select>
<br><br><br>

 <div id="div1" class="group" >
<input name="usernameOne" type="text" id="usernameOne" size="40"/><br />
</div>

 <div id="div2" class="group" >
<input name="usernameOne" type="text" id="usernameOne" size="40"/><br />
<input name="usernameTwo" type="text" id="usernameTwo" size="40"/><br />
</div>//ect.

我的问题是没有传递任何用户名变量。请记住,我正在运行的sciprt会使 div1 display:none div2 display:none;

因此,当我转储变量以查看第一个变量时是否传递了url,但是用户名不是。使用此方法显示输入时是否存在问题?我错过了什么。

感谢。

2 个答案:

答案 0 :(得分:0)

要确切了解代码的作用有点困难,但希望这会有所帮助:

HTML样式对发布的字段没有影响,因此这不是问题。如果设置了“禁用”属性,那么阻止使用表单发布字段的原因是什么。

问题的一部分是您有两个具有相同名称的输入(usernameOne)。如果您填写第一个空白但第二个空白字段将覆盖第一个空白字段。作为旁注,虽然您可以使用相同名称的多个输入,但您不应该有多个具有相同ID的输入。元素的ID应始终是唯一的。

答案 1 :(得分:0)

您正在复制表单中的输入名称,这意味着只有最后一个名称将发布到服务器。对于您的特定用例,我建议使用多个表单并提交按钮。或者您需要将disabled属性设置为隐藏div中的所有输入字段。