0

我正在使用以下代码要求用户输入他的名字、中间名和姓氏。

<label>
  <span>First name</span>
  <input type="text" size ="25" placeholder="Your Name" class="input_text"onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" name="name" id="name"/>
</label>

<label>
  <span> Middle Name</span>
  <input type="text" size ="25 class="input_text" placeholder="Father's name"  name="middle name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="middle name"/>
</label>

<label>
  <span>Last Name</span>
  <input type="text" size ="25" class="input_text" placeholder="Surname"  name="last name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="last name"/>
</label>

我希望所有 3 个名字、中间名和姓氏都进入数据库中一个名为 name 的列。

仅供参考,我正在使用 wamp 并在 phpmyadmin 中创建了我的数据库。我想使用 php 脚本将所有 3 个字段插入到名称中。我该怎么办?

4

4 回答 4

1

您可以在将字段插入数据库之前将它们连接起来;

$name = '';
if(isset($_POST['first_name'])){
    $name .= $_POST['first_name'];
}
if(if(isset($_POST['middle_name'])){
    //add a space before
    $name .= ' ' .$_POST['middle_name'];
}
if(isset($_POST['last_name'])){
    //add a space before
    $name .= ' ' . $_POST['last_name'];
}

//现在你在 $name 变量中有你的全名,你可以将它插入到数据库中

注意: 您不能在表单输入名称中使用空格。如果需要两个单词,则应使用下划线。

错误的:

<input type="text" name="middle name">

正确的:

<input type="text" name="middle_name">
于 2013-10-13T06:51:49.153 回答
1

首先更改您的中间名和姓氏属性,不要在 namig 之间保留空格。ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

<input type="text" size ="25" class="input_text" placeholder="Father's name"  name="middle name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="m_name"/>

<input type="text" size ="25" class="input_text" placeholder="Surname"  name="last name" onfocus="if(this.value==this.defaultValue)this.value=''"    
    onblur="if(this.value=='')this.value=this.defaultValue" 
    value="" id="l_name"/>

您可以将其设为单个字符串以在前端显示全名并将其插入名称字段中:

<?php
//your connection
$f_name=$_POST['name'];
$m_name=$_POST['m_name'];
$l_name=$_POST['l_name'];
$full_name=$f_name." ".$m_name." ".$l_name;
mysqli_query($con,"insert into table_name set name='$full_name'");
?>
于 2013-10-13T06:53:21.587 回答
0

将您的 name 属性更改为下面提到的 $_POST[] 变量名称。

<?php

//your connection

$f_name = mysqli_real_escape_string($con, $_POST['name']);
$m_name = mysqli_real_escape_string($con, $_POST['m_name']);
$l_name = mysqli_real_escape_string($con, $_POST['l_name']);

$full_name = $f_name . " " . $m_name . " " . $l_name;

$sql = "INSERT INTO yourTableName (tableColumnName) VALUES ('".$fullname."')";
$res = mysqli_query($con, $sql);

?>

希望这可以帮助你。

于 2013-10-13T07:12:14.443 回答
0

您可以使用json_encode$_POST 变量来获取 json 字符串并将其存储在数据库中。

要从存储的 json 字符串中获取原始数组,可以使用json decode,这样就不会丢失任何信息。

这是一个例子:

$form_data_json = json_encode( $_POST );
// store $form_data_json in database.
// .. 
// ..
// When you want to get stored data, just fetch it from db. let it be stored in $fetch 
$original_post_array = json_decode( $fetch, true );
于 2013-10-13T07:22:48.360 回答