类型为Submit&的按钮元素PHP的挑战 [英] Button Element with Type Submit & PHP Challenges

查看:78
本文介绍了类型为Submit&的按钮元素PHP的挑战的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近我将<输入类型= button> 更改为< button> 表单,但是PHP正在处理的表单不会再提交到数据库。我在代码中缺少什么吗?

Recently I change from <input type="button"> to <button> in my forms however the form being processed by PHP wouldn't then submit to the database. Am I missing something in my code?

基本上我所做的全部更改为:

Basically all I have done is changed this:

<input type="submit" name="submitAdd" value="Ask Question! " />

到此:

<button type="submit" class="btn" name="submitAdd"><span><span>Ask Question!</span></span></button>

这是基本的PHP处理代码:

Here is the basic PHP processing Code:



//Extract question from submission
$question = (isset($_POST["question"]))?$_POST["question"]:"";
$question_date = (isset($_POST["question_date"]))?$_POST["question_date"]:"";
$submitAdd = (isset($_POST["submitAdd"]))?$_POST["submitAdd"]:"";

//Open connect to database 
include("include/session.php");

//Prepare data for submission
$db_question = addslashes($question);
$db_question_date = addslashes($question_date);

//If form has been submitted, insert question into database
if ($submitAdd) {
    $sql ="INSERT INTO questions
    (question,question_date)
    VALUES ('$db_question', '$db_question_date')";
    $result = mysql_query($sql);
    if (!$result) {
        $message = "Failed to add question. MySQL said " . mysql_error();
    } else {
        header("Location:http://localhost/grill/register.php"); 
    }
}


推荐答案

由于按钮不起作用版本没有价值。您的代码说:

It doesn't work because the button version has no value. Your code says:

$submitAdd = (isset($_POST["submitAdd"]))?$_POST["submitAdd"]:"";

但是您有:

<button type="submit" class="btn" name="submitAdd"><span><span>Ask Question!</span></span></button>

将其与以下内容进行比较:

Compare this to:

<input type="submit" name="submitAdd" value="Ask Question! " />

具有值属性。此值将传递到PHP脚本,这就是您要测试的内容。您的< button> 没有一个。

which has a value attribute. This value is passed to the PHP script and is what you're testing. Your <button> doesn't have one.

没有值 $ submitAdd ,即使单击也将具有值。这样做时,空字符串的计算结果为false:

With no value $submitAdd, even when clicked, will have a value of ''. An empty string evaluates to false when you do this:

if ($submitAdd) {

因此,我建议进行一些更改。首先,更改以下内容:

So, a couple of changes I would recommend. Firstly, change this:

$submitAdd = (isset($_POST["submitAdd"]))?$_POST["submitAdd"]:"";

$submitAdd = isset($_POST['submitAdd']);

因为您并不真正在意价格。

since you don't really care about the value.

其次,与此无关,但仍然值得一提,我会这样做:

Secondly, unrelated to this but still worth mentioning, I would do this:

$db_question = mysql_real_escape_string($question);
$db_question_date = mysql_real_escape_string($question_date);
$sql = <<<END
INSERT INTO QUESTIONS (question, question_date)
VALUES ('$db_question', '$db_question_date')
END;

这篇关于类型为Submit&amp;的按钮元素PHP的挑战的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆