-2

次のフォームは、訪問者の色の好みに関するデータを収集します。

"No Color Chosen"ユーザーが空白のフォームを送信するのを防ぎたくないときに、ユーザーが空白のフォームを送信する場合、explode 関数を使用してデフォルト値 (たとえば、ここではデータベースで使用できないデフォルト値) を 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]);?>"

他に簡単にできる方法はありますか?

4

2 に答える 2

3

私はあなたのフォームがどのように機能するかさえ理解していません..私があなたに与えることができる最善のアイデアは、値をこのように設定することです....

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

そして、その行の後、次のアクションに $color 変数を使用します..

于 2012-10-23T05:09:00.133 に答える
0

PHP の質問には直接答えませんが、少なくともプレースホルダー テキスト機能は、Javascript を必要とせず、またはデフォルト値がデータベースに入力されていないことをテストすることなく、HTML5 でデフォルトで実現できます。

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

サポートはかなり良さそうですが (http://wufoo.com/html5/)、これをサポートしていないブラウザでも簡単にポリフィルできます - ここを見てください: https://github.com/ginader/HTML5-placeholder-ポリフィル

実際の例:

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

于 2012-10-23T05:10:57.927 に答える