以html格式获取字段值而不提交表单

时间:2016-08-10 02:17:43

标签: php html

我想询问是否可以在不提交表单的情况下从html表单中获取值?我不能让它在HTML或PHP中工作,或者我可能错过了一些东西。请帮忙。请参阅下面的工作代码:

<FORM  name="myForm" action="confirmsold.php" method="post" onsubmit="return validateFormLay()">
    <table border=0 width="550" cellspacing=1 cellpadding=3 bgcolor="#353535" align="center">
<tr>
        <td bgcolor="#ffffff">Price Basis:</td>
        <td bgcolor="#ffffff">
        <?php
        $connect = mysqli_connect("localhost","root","ilovegym") or die(mysqli_connect_error());

        mysqli_select_db($connect, "laborsa") or die(mysqli_error());

        $sql = "SELECT Cash_Price,3months,6months,12months,18months FROM itemmaster where Item_Number='".$_SESSION['ITEM#']."'";
        $result = mysqli_query($connect,$sql);

        echo "<select name='basis'>";
        while ($row = mysqli_fetch_array($result)) {
        echo "<option value='" . $row['Cash_Price'] ."'>" . $row['Cash_Price'] ." - ".CashPrice."</option><option value='" . $row['3months'] ."'>" . $row['3months'] ." - ".ThreeMonths."</option><option value='" . $row['6months'] ."'>" . $row['6months'] ." - ".SixMonths."</option><option value='" . $row['12months'] ."'>" . $row['12months'] ." - ".TwelveMonths."</option><option value='" . $row['18months'] ."'>" . $row['18months'] ." - ".EighteenMonths."</option>";
        }
        echo "</select>";
        ?>  
        </td>
    </tr>

    <tr>
        <td bgcolor="#ffffff">Downpayment:</td>
        <td bgcolor="#ffffff"><INPUT type="TEXT" name="downpayment" size="12" maxlength="11" onkeypress="if ( isNaN( String.fromCharCode(event.keyCode) )) return false;"></INPUT></td>
    </tr>

    <tr>
        <td bgcolor="#ffffff">Balance:</td>
        <td bgcolor="#ffffff"><INPUT type="TEXT" name="laybalance" size="12" maxlength="11" onkeypress="if ( isNaN( String.fromCharCode(event.keyCode) )) return false;"></INPUT></td>
    </tr>

正如你所看到的,我需要从付款基础中选择,然后输入首期付款。如何让余额字段自动显示余额?我只需要减去基础预付款,差额将存入平衡字段。

请帮助任何人。 谢谢。

2 个答案:

答案 0 :(得分:1)

客户端与服务器端

PHP完全在服务器端工作 - 您无法仅使用PHP提交表单而无法获取输入元素的值。 然而,您可以使用Javascript执行此操作 - 这在客户端而不是服务器端运行 - 它在用户的计算机上执行,而不是在服务器上执行。这意味着它可以在页面上运行。 Javascript可以为您获取表单元素的值。

Javascript代码

像PHP需要name属性来确定哪个输入字段包含哪些信息,Javascript需要id属性来获取输入字段的值。首先,这是HTML代码:

<input type="text" id="myAwesomeIdName">

现在,你需要&#34;得到&#34;元素 - 这将HTML元素作为Javascript可以使用的对象返回。这可以使用函数document.getElementById(id)来完成,其中id是HTML元素的id。例如:

document.getElementById("myAwesomeIdName")

我们现在需要做的就是获取输入的value属性 - 这样做是这样的:

document.getElementById("myAwesomeIdName").value;

然后返回输入框的值。

把它放在一起

这里有一些代码会弹出一个显示输入框内容的警告:

&#13;
&#13;
<input type="text" id="myAwesomeIdName"><br><button onclick="alert(document.getElementById('myAwesomeIdName').value)">Show Value</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你需要Javascript。将三个元素(<select><input> 1和<input> 2)也设为id="yourid",编写javascript代码会更加舒适。

制作第二个<input>字段read-only,因为该值是计算结果,而不是用户输入。

在javascript中编写你的函数,并在输入预付款时执行该函数,例如oninput=mycode()。 但是,当用户更改<select>时,也可以执行此功能,例如onchange=mycode()

javascript函数执行此操作(抱歉,没有代码,但是程序..)

  • 获取用户选择的<select>事件的值

  • 获取第一个<input>字段

  • 的值
  • 减去这些值并将结果写入第二个只读<input>字段

一些注意事项:

  • 最好让第一个<option> </option>显示“选择你的方法”或类似的东西,附加零值。然后您可以确定该功能将由用户触发。

  • 您对<input>元素的使用不正确。它不应该有结束标记。据我所知,</input>是不正确的HTML。

  • 在问题旁边,但<td bgcolor="#fff">更好<td style="background:#fff">

当值为OK时,用户可以提交表单。