How to check if input type button is pressed in PHP?

若如初见. 提交于 2019-12-07 11:05:19

问题


The isset() function can be used to check if the input type submit is pressed, but is there a way to check if the input type button is pressed?

In my code the button does nothing but call a function on the .Onclick() event which then refreshes the page and makes a database entry inside PHP...and I want it to make the entry only after the button is pressed...and I can't use the submit type for other reasons...following is some code:

function send()
{
    var events = document.getElementById("event").value;
    location.href = "calm.php?day=" + xx + "&month=" + yy + "&year=" +
                    zz + "&events=" + events;
}

<input name="Button"
       type="button"
       id="submit"
       onclick="send(this.form)"
       value="Button" />

<?php
    session_start();
    include_once "connect_to_mysql.php";
    $day = $_GET['day'];
    $month = $_GET['month'];
    $year = $_GET['year'];
    $events = $_GET['events'];
    $userid = $_SESSION['id'];
    if (isset($_POST['button']))
    {
        $sql = mysql_query("INSERT INTO events (userid,month,day,year,events)
                            VALUES('$userid','$month','$day', '$year','$events')")
               or die (mysql_error());
    }
?>

回答1:


isset($_POST['Button']) you just missed the capital B. You need to match it the same as the input's name attribute.




回答2:


you need to do that using ajax. so when a user clicks this button the page won't refresh.. there should be a page behind the seen does that for the user. whenever he clicks the button it accesses that page and upload whatever data you want...

edit: or you can just add a hidden input in the form when the button is clicked the hidden input value changes to i.e. true... then from php codes you can use the isset or other functions to validate whether the user clicked the button or not...




回答3:


In the example you have, the simplest approach would be to add an extra variable to the parameters passed in &button_press=true or something like that and then you would know that the button had been pressed when you are receiving the information




回答4:


'locrizak' answered right . Your button name is 'Button' and you tried to check presence of click on 'button' both are different . In such case if you are unsure of what is wrong , you may print the entire POST array using

print_r($_POST)

This will display all submitted values from form including button

Using isset() is the correct method to check whether a form element is present or not

Use

if(isset($_POST['Button'])){
  //code block for insertion,validation etc //
}



回答5:


isset() function does not works with input type=button. so either we have to use input type=submit instead of button or some hidden type if we still want to use button.



来源:https://stackoverflow.com/questions/9086947/how-to-check-if-input-type-button-is-pressed-in-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!