首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >option标记中的代码将空白数据发送到数据库

option标记中的代码将空白数据发送到数据库
EN

Stack Overflow用户
提问于 2013-04-15 04:33:55
回答 1查看 244关注 0票数 0

我建立了一个网站,存储服务机械师的客户到一个数据库。它具有更新条目功能。我有一个选择字段的下拉列表,它工作得很好(现在仍然有效)。但是,我在事实之后添加的第二个函数仅返回空白以获取信息。

这是我的代码。

代码语言:javascript
复制
include('connect.php');

$table='currentJobs';
$tableMap=array('Date','Name','Phone','Bike_Year','Bike_Model','Current_Status','SType','Mechanic','Revenue','Notes');

$sqlArray=array();

foreach ($tableMap AS $key){
    $sqlArray[]="`".$key."`='".mysql_real_escape_string(@$_POST[$key],$dbLink)."'";
}

$sql="UPDATE `".$table."` SET ".join(',',$sqlArray)." WHERE `id`='".$_POST['id']."'";

if (mysql_query($sql,$dbLink)){
    echo 'Data for <i>' .$_POST['Name'].'</i> was successfully updated <br />'.$sql.'.';
}
else {
    echo 'Sorry, could not process the following sql: <br /><code>'.$sql.'</code>';
    echo mysql_errno($dbLink) . ": " . mysql_error($dbLink). "\n";
}

mysql_close($dbLink);

它返回以下内容:

代码语言:javascript
复制
Data for Test User was successfully updated 
UPDATE `currentJobs` SET `Date`='04/14/2013',`Name`='Test User',`Phone`='1234567890',`Bike_Year`='2001',`Bike_Model`='FXD',`Current_Status`='Checked In',`SType`='',`Mechanic`='All',`Revenue`='0',`Notes`='' WHERE `id`='55'.

我的表单如下所示:

代码语言:javascript
复制
<form action="updated.php" method="POST" name="dataForm" id="dataForm">
<fieldset>
    <input type="hidden" name="id" value="<?php echo $row['id']; ?>"/>
    <label>Arrival<input type="text" name="Date" value="<?php echo $row['Date']; ?>"/></label><br />
    <label>Name<input type="text" name="Name" value="<?php echo $row['Name']; ?>"/></label><br />
    <label>Phone Number<input type="text" name="Phone" value="<?php echo $row['Phone']; ?>"/></label><br />
    <label>Bike Year<input type="text" name="Bike_Year" value="<?php echo $row['Bike_Year']; ?>"/></label><br />
    <label>Bike Model<input type="text" name="Bike_Model" value="<?php echo $row['Bike_Model']; ?>"/></label><br />
    <label>Current Status<!--Update Status types on two pages-->
        <select name="Current_Status" form="dataForm" value="<?php echo $row['Current_Status']; ?>">
            <option value="Checked In">Checked In</option>
            <option value="Inline For Service">Inline For Service</option>
            <option value="In Service">In Service</option>
            <option value="On Hold - Parts on Order">On Hold - Parts on Order</option>
            <option value="On Hold - Parts to Paint">On Hold - Parts to Paint</option>
            <option value="On Hold - Waiting To Hear From Customer">On Hold - Waiting To Hear From Customer</option>
            <option value="Test Ride">Test Ride</option>
            <option value="Completed - Awaiting Pick Up">Completed - Awaiting Pick Up</option>
            <option value="Picked Up">Picked Up</option>
        </select>
    </label><br />
    <!--update Service Type in two pages.-->
    <label>Service Type</label>
        <select name="SType" form="" value="<?php echo $row['SType']; ?>">
            <option value="Spec Service Interval">Spec Service Interval</option>
            <option value="Interim Service">Interim Service</option>
            <option value="Diagnostics">Diagnostics</option>
            <option value="Tires">Tires</option>
            <option value="Engine– Light Work (1-3 hrs)">Engine– Light Work (1-3 hrs)</option>
            <option value="Engine– Medium Work (3-8 hrs)">Engine– Medium Work (3-8 hrs)</option>
            <option value="Engine– Heavy Work (8-24 hrs)">Engine– Heavy Work (8-24 hrs)</option>
            <option value="Drivetrain– Light">Drivetrain– Light</option>
            <option value="Drivetrain - Heavy">Drivetrain - Heavy</option>
            <option value="Dyno Tune">Dyno Tune</option>
        </select>
    <br />
    <label>Mechanic Assigned<input type="text" name="Mechanic" value="<?php echo $row['Mechanic']; ?>"/></label><br />
    <label>Final Revenue<input type="text" name="Revenue" value="<?php echo $row['Revenue']; ?>"/></label><br />
    <label>Notes<input type="text" name="Notes" value="<?php echo $row['Notes']; ?>"/></label><br />
    <input type="submit" value="Update" style="color:#000000;" />
</fieldset>

为什么第二个选择不发送数据?

EN

回答 1

Stack Overflow用户

发布于 2013-04-15 04:40:34

select标记没有一个名为value的属性。

http://www.w3schools.com/tags/tag_select.asp

更新:

下面这样的代码会更有用:

代码语言:javascript
复制
<label>Service Type</label>
    <select name="SType" form="dataForm">
    <?php
    $Stypes = array(
    "Spec Service Interval",
    "Interim Service",
    "Diagnostics",
    "Tires",
    "Engine– Light Work (1-3 hrs)",
    "Engine– Medium Work (3-8 hrs)",
    "Engine– Heavy Work (8-24 hrs)",
    "Drivetrain– Light",
    "Drivetrain - Heavy",
    "Dyno Tune",
    );

    foreach($Stypes as $value){
      if ($value==$row['SType']){
        echo "<option value=\"$value\" selected=\"selected\">value</option>";  
      } else {
        echo "<option value=\"$value\">$value</option>";  
      }
    }

    ?>

    </select>

假设您正在从数据库中拉回$row['Stype']

同样,正如@Fred所说,如果您使用HTML5,则可能需要为form属性指定一个表单id (尽管这在IE中不起作用...还没有)。

您还可以在执行插入的页面上执行print_r($_POST)以进行调试,以验证发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16004046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档