我使用以下代码要求用户输入他的名字,中间名和姓氏。
<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个名字,中间名和姓都进入一个名为数据库名称的单一列。
仅供参考我正在使用wamp并在phpmyadmin中创建了我的数据库。我想使用php脚本将所有3个字段插入名称。我该怎么办?
答案 0 :(得分: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">
答案 1 :(得分:1)
首先更改你的中间名和姓名attribue,不要在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'");
?>
答案 2 :(得分: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);
?>
希望这可以帮助你。
答案 3 :(得分:0)
你可以使用json_encode
获取$ _POST变量来获取json字符串并将其存储在db中。
要从存储的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 );