表单不提交php

时间:2018-05-01 08:10:10

标签: php forms

我有一个表单字段,其中有一个提交按钮。当我点击提交按钮时没有任何反应。这是我的代码:

这是combinations

$combinations = [
    40 - black,
    40 - blue,
    41 - black,
    41 - blue,
    42 - black,
    42 - blue
];

<div class="col-md-12 alert-success">
    <form id="configurable_product_form" class="configurable_form" action="" method="post">
    <?php

    $combinations = getConigurationsByCuts($pageid);
    $check_index = 0;
    foreach ($combinations as $combination) {
        if (isset($existing_configurations[$check_index])) {

        } 
    ?>

        <labe><?php echo $combination; ?></labe>
        <input class="configurable_input" type="number" name="sku_<?php echo $check_index ?>" placeholder = 'sku'/>
        <input class="configurable_input" type="number" name="price_<?php echo $check_index ?>" placeholder = 'price'/>
        <br/>
        <?php $check_index++; } ?>
        <input type="submit" value="save"/>
    </form>
</div>

编辑:

我有这个代码应该在提交表单后运行:

if (isset($_POST["sku_0"])) {
    for ($i = 0; $i < count($combinations); $i++){
        if (isset($_POST["sku_".$i]) && $_POST["sku_".$i]){
            $sku_to_write = $_POST["sku_".$i];
            $query = "UPDATE products_configurations SET sku = \"$sku_to_write\" WHERE product_id = \"$productid\" AND cuts = \"$combinations[$i]\";";
            $value = mysql_query($query);
        }
    }
}
if (isset($_POST["price_0"])) {
    for ($i = 0; $i < count($combinations); $i++){
        if (isset($_POST["price_".$i]) && $_POST["price_".$i]){
            $price_to_write = $_POST["price_".$i];
            $query = "SELECT price FROM products WHERE id = \"$productid\";";
            $value = mysql_query($query);
            $result = mysql_fetch_array($value);
            foreach ($result as $r) {
                $product_price = $r;
            }
            if ($price_to_write == $product_price){

            } else {
                $query = "UPDATE products_configurations SET price = \"$price_to_write\" WHERE product_id = \"$productid\" AND cuts = \"$combinations[$i]\";";
                $value = mysql_query($query);
            }
        }
    }
}
if (isset($_POST["enabled_0"])) {
    for ($i = 0; $i < count($combinations); $i++) {
        if (isset($_POST["enabled_".$i]) && $_POST["enabled_".$i]) {
            $is_checked = $_POST["enabled_".$i];
            $query = "UPDATE products_configurations SET enabled = \"$is_checked\" WHERE product_id = \"$productid\" AND cuts = \"$combinations[$i]\";";
            $value = mysql_query($query);
        }
    }
}

问题是,点击提交按钮后页面甚至没有重新加载

编辑2:

发现问题,显然我将form放在另一个由AJAX控制的表单中。我把它带出那里,它的作品很迷人!

感谢所有帮助!

3 个答案:

答案 0 :(得分:0)

没有定义明确的action没有问题,因为它只会提交到同一页面(尽管 - 正如@phonicx所提到的 - 它不是根据规格,它仍然在所有浏览器中都是这样的)

我认为您的问题是您不以任何方式处理表单(至少查看您的代码),所以每次您提交&#34;它只是刷新页面的形式,所以看起来没有任何反应。

我希望在您的代码中看到一些$var = $_POST['field_name'],以便使用通过表单发布的数据

答案 1 :(得分:0)

您定义的html代码没有问题。 我已经尝试过删除php的代码,所以这段代码中的php一定有问题。

让我知道你想用这段代码做什么:

$combinations = [
  40 - black,
    40 - blue,
    41 - black,
    41 - blue,
    42 - black,
    42 - blue
];

你在创建一个数组吗?如果是,那就不是这样了。

答案 2 :(得分:-1)

您的表单未定义任何操作。

您需要创建服务器端路由以接受表单提交时发送的POST请求。

请参阅:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

  

动作

     

处理表单信息的程序的URI。这个值   可以被一个或一个的形式属性覆盖   元件。