简体   繁体   English

php html下拉至mysql

[英]php html drop down to mysql

Okay ive been experimenting with php and my sql for the last day or so. 好吧,我在最后一天左右一直在尝试使用php和sql。

But I have been trying to make a simple input form that a user will fill out on a webpage and then it flows into my (mysql) server so far I have it taking the FirstName LastName Gender and City But the next question is state and that propose a bit of a issue I have a drop down with all 50 states but I think my html is missing a factor at witch will allow my php script to grab it 但是我一直在尝试制作一个简单的输入表单,用户将在网页上填写该表单,然后将其输入到我的(mysql)服务器中,到目前为止,我已经将FirstName LastName性别和城市作为输入,但是下一个问题是州和提出一个问题,我有一个与所有50个州有关的清单,但我认为我的html缺少一个巫婆因素,它将允许我的php脚本抓住它

Here is the code for my state drop down 这是我的状态下拉列表的代码

State: <select>
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
<option value="Arizona">Arizona</option>
<option value="Arkansas">Arkansas</option>
<option value="California">California</option>
<option value="Colorado">Colorado</option>
<option value="Connecticut">Connecticut</option>
<option value="Delaware">Delaware</option>
<option value="Florida">Florida</option>
<option value="Georgia">Georgia</option>
<option value="Hawaii">Hawaii</option>
<option value="Idaho">Idaho</option>
<option value="Illinois">Illinois</option>
<option value="Indiana">Indiana</option>
<option value="Iowa">Iowa</option>
<option value="Kansas">Kansas</option>
<option value="Kentucky">Kentucky</option>
<option value="Louisiana">Louisiana</option>
<option value="Maine">Maine</option>
<option value="Maryland">Maryland</option>
<option value="Massachusetts">Massachusetts</option>
<option value="Michigan">Michigan</option>
<option value="Mississippi">Mississippi</option>
<option value="Missouri">Missouri</option>
<option value="Montana">Montana</option>
<option value="Nebraska">Nebraska</option>
<option value="Nevada">Nevada</option>
<option value="New Hampshire">New Hampshire</option>
<option value="New Jersey">New Jersey</option>
<option value="New Mexico">New Mexico</option>
<option value="New York">New York</option>
<option value="North Carolina">North Carolina</option>
<option value="North Dakota">North Dakota</option>
<option value="Ohio">Ohio</option>
<option value="Oklahoma">Oklahoma</option>
<option value="Oregon">Oregon</option>
<option value="Pennsylvania">Pennsylvania</option>
<option value="Rhode Island">Rhode Island</option>
<option value="South Carolina">South Carolina</option>
<option value="South Dakota">South Dakota</option>
<option value="Tennessee">Tennessee</option>
<option value="Texas">Texas</option>
<option value="Utah">Utah</option>
<option value="Vermont">Vermont</option>
<option value="Virginia">Virginia</option>
<option value="Washington">Washington</option>
<option value="West Virginia">West Virginia</option>
<option value="Wisconsin">Wisconsin</option>
<option value="Wyoming">Wyoming</option>
</select><br>

And here is how I have been optaining the other elements 这就是我一直在尝试其他元素的方式

<?php
include"config.php";
$FirstName = $_POST['FirstName'];
$LastName = $_POST['LastName'];
$Gender = $_POST['Gender'];

$insert = 'INSERT into content(FirstName, LastName, Gender)     VALUES("'.$FirstName.'","'.$LastName.'", "'.$Gender.'")';
mysql_query($insert);

Not sure how to do this? 不确定如何执行此操作?

First off your <select> needs a name attribute: 首先,您的<select>需要一个name属性:

<select name="state">

Then you need to capture it in your php: 然后,您需要在php中捕获它:

$state = $_POST['state'];

Then you need to add it to your sql statement 然后,您需要将其添加到您的sql语句中

$insert = 'INSERT into content(FirstName, LastName, Gender, State)     VALUES("'.$FirstName.'","'.$LastName.'", "'.$Gender.'", "'.$state.'")';

This is assuming that you have a column in your content table called state and it resides directly after gender. 假设您的content表中有一列叫做state的列,并且它直接位于性别之后。

And as always don't use mysql_* functions. 和往常一样,不要使用mysql_ *函数。 Use mysqli or PDO. 使用mysqli或PDO。

Give your select control a name: 为您的选择控件命名:

<select name="State">

And from your php script grab it like: 并从您的PHP脚本中抓取它,例如:

$state = $_POST['State']

Put a name attribute in the tag: 在标签中放置一个名称属性:

<select name="State"> ...

And yes, mysql_ functions are deprecated. 是的,不建议使用mysql_函数。 Look for mysqli_ ... or better yet, consider using ORM's from mature frameworks. 寻找mysqli_ ...或更好,考虑使用成熟框架中的ORM。

You have to give the <select> tag an id or a name, Like so: 您必须给<select>标记一个ID或一个名称,就像这样:

<select id="state" name="state">

Then, you obtain it in PHP like this: 然后,您可以像这样在PHP中获得它:

$state= $_POST['state'];

HTML 的HTML

State: <select name="State">
<option value="Alabama">Alabama</option>
<option value="Alaska">Alaska</option>
<option value="Arizona">Arizona</option>
<option value="Arkansas">Arkansas</option>
<option value="California">California</option>
<option value="Colorado">Colorado</option>
</select>

PHP 的PHP

$State = $_POST['State'];

use mysqli or PDO to connect to mysql, not use vulnerable code as above. 使用mysqli或PDO连接到mysql,而不要使用上述易受攻击的代码。

Your states list box needs a name attribute 您的状态列表框需要一个名称属性

< select name="state" value="Alabama">Alabama</select> < select name="state" value="Alabama">Alabama</select>

then you may capture the value as this way: 那么您可以通过以下方式捕获值:

$state= $_POST['state'];

Then add it in your SQL sentence. 然后将其添加到您的SQL语句中。

That's it. 而已。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM