类型为Submit&的按钮元素PHP的挑战 [英] Button Element with Type Submit & PHP Challenges
问题描述
最近我将<输入类型= 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&的按钮元素PHP的挑战的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!