javascript - 单击将输入文本复制到另一个位置

标签 javascript jquery

我正在制作一个管理面板。当用户将数据输入到文本字段时,我想将文本字段中的数据复制到另一个文本字段。 我的问题是代码一直有效,直到我将插入数据库功能添加到同一按钮。 我如何获得执行这两种功能的按钮。有没有更好的方法来执行 onclick 功能。由于我使用两个文本字段,但我真的希望其中一个作为产品标题。如下图所示:

enter image description here

代码是

    <?php
    $add_product_errors = array();

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // price validate - must be decimal(float)
        if (empty($_POST['price']) || !filter_var($_POST['price'], FILTER_VALIDATE_FLOAT) || ($_POST['price'] <= 0)) {
            $add_product_errors['price'] = "Please enter a product price";
        }
        // item name validate
        if (empty($_POST['item_name'])) {
            $add_product_errors['item_name'] = "Please enter a name";
        }
        // item name description
        if (empty($_POST['desc'])) {
            $add_product_errors['desc'] = "Please enter a product description";
        }

        //add to database
        //if (empty($add_product_errors)) {
        $q = 'INSERT INTO Product (Product_Name,Product_Desc,Product_Price)   VALUES (?,?,?)';
        $stmt = mysqli_prepare($dbc, $q);

        //debugging
        $stmt = mysqli_prepare($dbc, $q) or die(mysqli_error($dbc));

        mysqli_stmt_bind_param($stmt, 'sss', $item_name, $desc, $price);
        $item_name = strip_tags($_POST['item_name']);
        $desc = strip_tags($_POST['desc']);
        //100 - changes the way the decimal displays in database
        $price = strip_tags($_POST['price'] * 100);

        //execute the query
        mysqli_stmt_execute($stmt);
        printf("%d Item Added.\ ", mysqli_stmt_affected_rows($stmt) === 1); {
            mysqli_stmt_close($stmt);
        }
    }
    ?>

HTML

   <form name="product_form" enctype="multipart/form-data" action="admin_p.php" method="post" accept-charset="utf-8" >
            <input type="textfield" id="title" name="title" value="">
            <input type="textfield" id="item_name" name="item_name" placeholder="item name" value="" <?php $add_product_errors ?>/><br>
            <textarea id="desc" name="desc" value="" placeholder="Item description" rows="3" maxlength="200" required ><?php $add_product_errors ?></textarea><br>
            <input type="textfield" id="price" name="price" value="" placeholder="£" maxlength="30" required <?php $add_product_errors ?>/><br>
            <input type="submit" name="add" value="add" value="add" class="btn" onclick="myFunction()">

            <!-- copy item_name to page title -->
            <script>
                function myFunction() {
                    document.getElementById("title").value = document.getElementById("item_name").value;
                }     
            </script>

最佳答案

考虑将提交输入更改为常规按钮,以便您可以完全控制控制流。它还可能使控制流程更清晰,便于您理解。

<form name="product_form" enctype="multipart/form-data" action="admin_p.php" method="post" accept-charset="utf-8" onsubmit="myFunction()">
... your HTML here ...
<input type="button" name="add" value="add" value="add" class="btn" onclick="myFunction()">
</form>
<script>
    function myFunction() {
    // Update your field value
    document.getElementById("title").value = document.getElementById("item_name").value;

    // Submit your form.
    document.forms["product_form"].submit();
            }     
</script>

关于javascript - 单击将输入文本复制到另一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35751882/

相关文章:

javascript - javascript 中未附加的匿名函数和双重命名方法?

javascript - 错误 : Cannot read property of undefiended

javascript - 如何以编程方式开始/停止编辑 contenteditable?

javascript - 调整悬停时内容的垂直对齐方式

java - PlayFramework 和 jquery 图表

javascript - 如何使用 Phantomjs 设置页面抓取之间的时间间隔

javascript - 无法使用 Bower、Jquery UI 和 RequireJS 找到 Jquery UI 依赖项

javascript - 使用 Websocket 发送消息

javascript - 仅限 Firefox/IE - gif 动画在 element show() jquery 之后卡住

javascript - 使用 jQuery 弹出窗口?