在我的HTML表单中,带有单选按钮和其他'文本字段不理解单选按钮的值

时间:2015-02-05 21:42:23

标签: php html mysql forms

我试图创建一个HTML表单,通过php将所有输入的值插入MySQL数据库。 特别针对这种情况,用户输入产品编号供应商

供应商应由单选按钮和其他其他'定义。用户可以指定其他选项的文本字段... 当用户选择' 其他'选项,键入的值正确插入MySQL DB中,但是当选择其中一个单选按钮时,不会插入供应商但是文本“...”... 我不明白为什么剧本会这样做,因为我没有“on”的价值。在剧本的任何地方。

我搜索了google和stackoverflow,尝试了很多东西,但我还是没能让它发挥作用。我是一个php和html newb,所以请放轻松我。

以下是代码的精简版本。 (实际上,脚本还会从表单,会话用户名和时间戳中提交更多字段。)

有没有人看到' on'可能来自,如何解决这个问题?谢谢。

代码的php部分:

<?php
    if (isset($_POST['submit'])) {
    // These set your initial variables. q1_* is for the queried entries in the form
    $q2_productname = $_POST['q2_productname'];
    $q3_supplier = $_POST['q3_supplier'];
    if ($q3_supplier =='other'){
    $q3_supplier = $_POST['q3_supplier_other'];
    }               


    if (isset($q2_productname)) {
    $q2_productname = trim($q2_productname);
    $q2_productname = strip_tags($q2_productname);
    $q2_productname = stripslashes($q2_productname);
    $q2_productname = htmlspecialchars($q2_productname);
    }
    if (isset($q3_supplier)) {
    $q3_supplier = trim($q3_supplier);
    $q3_supplier = strip_tags($q3_supplier);
    $q3_supplier = stripslashes($q3_supplier);
    $q3_supplier = htmlspecialchars($q3_supplier);
    }


    $dbc = @mysql_connect (DBHOST, DBUSER, DBPASS) or die('Failure: ' . mysql_error() );
    mysql_select_db(DBNAME) or die ('Could not select database: ' . mysql_error() );

    $query = "INSERT INTO orders VALUES ('$q2_productname','$q3_supplier')";
    $q = mysql_query($query);

    if (!$q) {
    exit("<p>MySQL Insertion failure.</p>");
    } else {
    mysql_close();
}

然后是代码的html / echo / script部分:

<?php 
    if (isset($_POST['submit'])) {
    echo "<p style='padding: .5em; border: 2px solid red;'>Thank you. Your product has been added to the order list!</p>";
    }
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<fieldset>
<div>
<label for="q2">Full product name:</label><br />
<textarea id="q2" name="q2_productname" rows="1" cols="50"></textarea>
</div>
</fieldset><br /><br />

<fieldset>
<div>
<label for="q3">Supplier (e.g. Sigma-Aldrich, VWR, ...):</label><br />

<input type="radio" name="q3_supplier" id="q3" onchange="disableTxt()" checked="checked" />Sigma-Aldrich 
    <input type="radio" name="q3_supplier" id="q3" onchange="disableTxt()" />VWR 
    <input type="radio" name="q3_supplier" id="q3" onchange="enableTxt()" />Other:
<input type="text" name="q3_supplier_other" id="other" disabled="disabled" />

<script>
    function disableTxt() {
        document.getElementById("other").disabled = true;
    }
    function enableTxt() {
        document.getElementById("other").disabled = false;
    }
</script>

</div>
</fieldset><br /><br />
</form>

2 个答案:

答案 0 :(得分:0)

设置无线电输入的值属性。该值将发布到您的服务器。价值将是&#39; on&#39;除非你指定它。

<input type="radio" name="q3_supplier" id="q3" onchange="disableTxt()" checked="checked" value='Sigma-Aldrich'/>Sigma-Aldrich 
<input type="radio" name="q3_supplier" id="q3" onchange="disableTxt()" value='VWR' />VWR 
<input type="radio" name="q3_supplier" id="q3" onchange="enableTxt()" value='Other' />Other:

答案 1 :(得分:0)

value的默认input[type=radio]on

我建议您学习如何使用Firebug或Chrome开发工具,以便真正了解实际提交的内容以及从服务器返回的内容。