如果表单的文本输入字段保持空白,则将预定义值插入mysql

时间:2012-10-23 05:03:42

标签: php html mysql forms

以下表格收集有关访客颜色偏好的数据。

如果用户在我不想要的时候提交空白表单,如何使用explode函数将默认值(例如,"No Color Chosen"是默认值,这里是数据库中不可用)插入mysql数据库防止用户提交空白表格。

虽然我不确定是否使用爆炸功能是正确的方法,但我尝试使用以下语法

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {    
$color = "No Color Chosen ({$_POST['color_name']};)";
$colors = explode (" ", $color);

$insertSQL = sprintf("INSERT INTO colortable (color_name) VALUES (%s)",


GetSQLValueString(trim($colors[]), "text")),

  mysql_select_db($database_x, $x;
  $Result1 = mysql_query($insertSQL, $x) or die(mysql_error());

  $insertGoTo = "choice.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));

<form action="<?php echo $editFormAction; ?>" method="post" name="form1"   id="form1">
    <table align="center">
        <tr valign="baseline">
            <td align="right" nowrap="nowrap">Enter Color Name:</td>
            <td>
                <input type="text" name="color_name" value="" size="32" />
            </td>
        </tr>
        <tr valign="baseline">
            <td nowrap="nowrap" align="right">
                <input type="hidden" name="MM_insert" value="form1" />
            </td>
            <td>
                <input type="submit" value="Submit Color Name" />
            </td>
        </tr>
    </table>
</form>
</td>
</tr>
</table>

我应该如何定义以下值

  value=
    "<?php echo $_POST($colors[0]);?>"
    "<?php echo $_POST($colors[1]);?>"

作为表单文本输入值的条件语句

<input type="text" name="color_name" value="conditional statement goes here" size="32" />
在这种情况下

,以便在空白表单提交中插入从<?php echo $_POST($colors[0]);?>派生的默认值默认值“No Color Chosen”?

顺便说一句,这里$ color数组$colors[1]的另一个元素应该通过值"<?php echo $_POST($colors[1]);?>"将用户输入发布到数据库中。如果有的话。

还有其他简单方法吗?

2 个答案:

答案 0 :(得分:3)

我不明白你的表格是如何运作的......我能给你的最好的想法就是把价值设定为这个(开头的某个地方)....

    $color = "DEFAULT VALUE";
    if(isset($_POST['color_name']) && !empty($_POST['color_name'])){
       $color = $_POST['color_name'];
    }

在该行之后使用$ color变量进行下一步操作..

答案 1 :(得分:0)

我不会直接回答PHP问题,但至少可以在HTML5中默认完成占位符文本功能,而无需Javascript或测试默认值没有输入数据库:

<input type="text" placeholder="my text to be replaced"/>

支持看起来相当不错(http://wufoo.com/html5/)虽然您可以在不支持它的浏览器中轻松填充此内容 - 请参阅此处:https://github.com/ginader/HTML5-placeholder-polyfill

行动中的一个例子:

http://jsfiddle.net/jjnbF/1/