Php 如果';行动';这是固定的形式
我基本上有:Php 如果';行动';这是固定的形式,php,sql,forms,input,Php,Sql,Forms,Input,我基本上有: <form action="index.php" method="post"> <input name="text" type="text" value="Insert text here" size="20"/> <input name="submit" type="submit" value="Submit" /> </form> 据我所知,如果表单数据被提交,它会将用户发送回index.php 但我所做的是,无
<form action="index.php" method="post">
<input name="text" type="text" value="Insert text here" size="20"/>
<input name="submit" type="submit" value="Submit" />
</form>
据我所知,如果表单数据被提交,它会将用户发送回index.php
但我所做的是,无法使用新值更新,并将我发送回index.php,就好像没有什么问题一样
如果我在表单中保留action=“”
或action=“”
,当我重新加载页面时,它会更新(不是F5-单击地址行并按enter)
我想要的是什么:
我点击submit,它更新数据库,将我发送到index.php
如何实现这一点?删除表单中的action=”“
(使您重新加载页面并使用与if
相同的文件),并将if
更改为:
if(isset($_POST['submit'])) {
$newDbValue = $_POST['text'];
$sql = ("
UPDATE `pseudo_tableName`
SET TEXT = '".$newDbValue."'
WHERE name = 'pseudo_fieldName' LIMIT 1
");
header("Location: index.php");
exit;
}
删除表单中的action=”“
(使您重新加载页面并使用与if
相同的文件),并将if
更改为:
if(isset($_POST['submit'])) {
$newDbValue = $_POST['text'];
$sql = ("
UPDATE `pseudo_tableName`
SET TEXT = '".$newDbValue."'
WHERE name = 'pseudo_fieldName' LIMIT 1
");
header("Location: index.php");
exit;
}
您是否尝试设置:
<?php
if (isset($_POST['text']) AND !empty($_POST['text'])) {
// ...
}
?>
而不是其他输入
action='index.php'会将您发送回index.php,因此请确保您的php位于表单上方(以及您的HTML)。我还想知道,您已经设置了mysql\u connect和mysql\u查询功能
您是否有php.ini中的错误报告?当您使用var_dump()变量时,MySQL查询结果集会说什么
<?php
$sql = mysql_query($newDbValue));
var_dump($sql);
?>
您是否尝试设置:
<?php
if (isset($_POST['text']) AND !empty($_POST['text'])) {
// ...
}
?>
而不是其他输入
action='index.php'会将您发送回index.php,因此请确保您的php位于表单上方(以及您的HTML)。我还想知道,您已经设置了mysql\u connect和mysql\u查询功能
您是否有php.ini中的错误报告?当您使用var_dump()变量时,MySQL查询结果集会说什么
<?php
$sql = mysql_query($newDbValue));
var_dump($sql);
?>
所有
元素都需要操作
属性。您所描述的内容可能意味着您的PHP脚本没有检测表单数据,因此没有对MySQL数据库进行必要的更改。这背后的原因可能取决于您使用的浏览器;据我所知,如果按Enter键(键盘),则表单中不包括提交按钮值
(这表示允许使用多个具有不同值的提交按钮并执行正确的功能)
如果我是你,我会检查表单中的实际文本输入,而不是按钮
<?php
// check 'text' exists and make sure it isn't blank.
if(isset($_POST['text']) && $_POST['text']!='') {
// do MySQL updating here.
header("Location: index.php"); // send back to index.php after updating.
}
?>
所有
元素都需要操作
属性。您所描述的内容可能意味着您的PHP脚本没有检测表单数据,因此没有对MySQL数据库进行必要的更改。这背后的原因可能取决于您使用的浏览器;据我所知,如果按Enter键(键盘),则表单中不包括提交按钮值
(这表示允许使用多个具有不同值的提交按钮并执行正确的功能)
如果我是你,我会检查表单中的实际文本输入,而不是按钮
<?php
// check 'text' exists and make sure it isn't blank.
if(isset($_POST['text']) && $_POST['text']!='') {
// do MySQL updating here.
header("Location: index.php"); // send back to index.php after updating.
}
?>
您的代码看起来正确;我不知道你是不是被狗咬了。尝试包括echo日期(“H:i:s”,now())。”。打印($POST,true)。“”
以确保您看到的页面实际上是来自服务器(包括表单数据)的最新版本。顺便说一下,action=“”
和action=“”
将生成相同的输出,您的意思可能是
包含此代码的脚本的名称是什么?您的代码看起来正确;我不知道你是不是被狗咬了。尝试包括echo日期(“H:i:s”,now())。”。打印($POST,true)。“”
以确保您看到的页面实际上是来自服务器(包括表单数据)的最新版本。顺便说一下,action=“”
和action=“”
将生成相同的输出,您的意思可能是
包含此代码的脚本的名称是什么?我收到一个错误:警告:无法修改标题信息-标题已经由/index.php第117行的/index.php中的(输出开始于/index.php:14)发送。。。第14行是我的@Kristian所在的位置,因此,在添加代码头之前放置此表单处理程序。我得到一个错误:警告:无法修改头信息-头已经由/index.php中的/index.php发送(输出从/index.php:14开始),在第117行
。。。第14行是my@Kristian的所在,因此,在添加代码头之前放置此表单处理程序。我的输入字段和按钮由?table=
和&field
URL参数控制。。。它完全在一个PHP标记中运行。如果我把我的If(isset($\u POST[$fieldName]))
放在PHP代码的最开始,它甚至不会运行(因为字段的值直到代码的最后才被设置。var\u dump($sql);
返回bool(true)
…不知道这是否是你的意思。@Kristian我的意思是,如果你要使用重定向函数,请先使用PHP代码,否则它会给你这个错误,并始终检查变量是否存在以及它是否在所有内容中都有值(因此你的代码总是运行)。如果var\u dump($sql)
返回true,则数据库应该已经更新。我的输入字段和按钮由?table=
和&field
URL参数控制……它完全在PHP标记中运行。如果我将我的If(isset($\u POST[$fieldName])
放在PHP代码的最开始位置,它甚至不会运行(因为字段的值直到代码的最后才设置。var_dump($sql);
返回bool(true)
…不知道这是否是你的意思。@Kristian我的意思是,如果你要使用重定向函数,请先使用PHP代码,否则它会给你这个错误,并始终检查变量是否存在以及它是否在所有内容中都有值(因此你的代码总是运行)。如果var\u dump($sql)
返回true,则数据库应已更新。感谢您的回答…很遗憾,我