在php变量中存储一个按钮id

时间:2016-01-09 14:20:43

标签: php jquery ajax

我按照建议对代码进行了更改。这是我更新的代码:

<form  action="" method="POST">
        <div class="btn-group btn-group-justified" role="group" aria-label="...">
            <div class="btn-group" role="group">
                <input type="submit" class="btn btn-default" name="navbtnplace" value="<?=$country?>">
            </div>
            <div class="btn-group" role="group">
                <input type="submit" class="btn btn-default" name="navbtnplace" value="<?=$state?>">
            </div>
            <div class="btn-group" role="group">
                <input type="submit" class="btn btn-default" name="navbtnplace" value="<?=$city?>">
            </div>
            <div class="btn-group" role="group">
                <input type="submit" class="btn btn-default" name="navbtnplace" value="<?=$user_name?>">
            </div>
        </div>
        </form>
<?php
if(isset($_POST['navbtnplace'])) {
                    echo  $_POST['navbtnplace'];

                }
                ?>

但它也刷新了页面。如何在没有页面刷新的情况下获取按钮值?

3 个答案:

答案 0 :(得分:1)

PHP无法将html的id作为表单数据捕获。如果你想捕获html的id并将其插入变量,你必须做一个简单的技巧,插入按钮的值与其id相同。所以,你的按钮应该是这样的:

<form method="post">
    <input type="submit" id="a" name="idVal" value="a" class"navbtnplace">
    <input type="submit" id="b" name="idVal" value="b" class"navbtnplace">
    <input type="submit" id="c" name="idVal" value="c" class"navbtnplace">
    <input type="submit" id="d" name="idVal" value="d" class"navbtnplace">
</form>

<?php

if(isset($_REQUEST['idVal'])) {
    ext($_REQUEST['idVal']);
}

function ext($id) {
   echo $id;
}

请在switch case进程中检查你的代码,你不应该创建与本机php函数具有相同名称的函数。

答案 1 :(得分:0)

PHP只接受表单数据 - value属性中的任何内容因此,您无法在PHP代码中获取id值。 如果要检查按下了哪个按钮,则只能使用value属性进行检查。

<强>的test.html

<html>
    <body>
        <form action="index.php" method="POST">
            <!-- other form fields -->
            <input type="button" id="a" name="idVal" value="a" class"navbtnplace">
            <input type="button" id="b" name="idVal" value="b" class"navbtnplace">
            <input type="button" id="c" name="idVal" value="c" class"navbtnplace">
            <input type="button" id="d" name="idVal" value="d" class"navbtnplace">
        </form>
    </body>
</html>

<强>的index.php

<?PHP
    echo $_POST['idVal'];
?>

注意:如果您发送一个AJAX请求来存储该值,然后单独提交表单,您将丢失第一个值,因为这两个是独立请求。但是,SESSION和COOKIE将在这种情况下工作。一次,通过AJAX或普通表单提交将值保存在会话中,它将被全局保存,您可以在刷新页面后访问保存的值。

答案 2 :(得分:0)

无需切换只需使用表单发送的值调用extact()功能。

<?php
if(isset($_REQUEST['idVal'])) {
    $navBtnVal = $_REQUEST['idVal'];
    extract($navBtnVal);
}

function extract($id) {
    //some event
}
?>

<!-- Change action attribute to some other page if you want to send data to somewhere else.  -->
<!-- You also missed equal operator(=) in class -->
<!-- Give an extra attribute value and put its value as like id as below. Because php will receive your value attribute's data-->
<form method="post" action="">
    <input type="button" id="a" name="idVal" value="a" class="navbtnplace" />
    <input type="button" id="b" name="idVal" value="b" class="navbtnplace" />
    <input type="button" id="c" name="idVal" value="c" class="navbtnplace" />
    <input type="button" id="d" name="idVal" value="d" class="navbtnplace" />
</form>