使用PHP将post和get与表单一起发送到同一页面
我正在制作一个PHP应用程序,用它测试面向对象,因为我试图学习OO而不是过程编程 基本上,我有一个用户可以使用系统预订的课程列表,它们出现在用户配置文件中。从配置文件中,我希望在每个预订的课程旁边有一个“删除”链接,单击该链接可删除课程 我需要使用html表单吗?我已经开始做了,但似乎不对。我有一个名为“delete_course”的函数,它完成了我希望它完成的事情,我需要传递的只是DB中帖子的ID。所以我的问题是。。。将表单中的ID发布到带有函数调用的页面是最佳做法吗 如果这是最好的方式,那么最好将其发布到用户所在的同一(当前)页面,或者发布到另一个页面,比如“cancel_course.php”???有什么好处 谢谢使用PHP将post和get与表单一起发送到同一页面,php,html,forms,post,Php,Html,Forms,Post,我正在制作一个PHP应用程序,用它测试面向对象,因为我试图学习OO而不是过程编程 基本上,我有一个用户可以使用系统预订的课程列表,它们出现在用户配置文件中。从配置文件中,我希望在每个预订的课程旁边有一个“删除”链接,单击该链接可删除课程 我需要使用html表单吗?我已经开始做了,但似乎不对。我有一个名为“delete_course”的函数,它完成了我希望它完成的事情,我需要传递的只是DB中帖子的ID。所以我的问题是。。。将表单中的ID发布到带有函数调用的页面是最佳做法吗 如果这是最好的方式,那么
哦,顺便说一句,我对PHP比较陌生,但已经做了很多JS,所以我知道ajax是一个更好的选择,只是尝试学习PHP:)如果我理解正确,你有一些东西的列表,每个东西都有自己的删除按钮 比如说,, 拉脱维亚语课程[删除课程] 我发现非常简单,[Delete Course]将有指向同一页面的链接,带有GET参数,比如Delete_Course=$id。 然后
如果您想在不使用JavaScript的情况下通过HTTP发布变量,则需要在HTML中提供一个表单,该表单的method属性为“POST” 每个删除按钮在数据库中都可以有一个课程ID的值,这使您可以轻松地识别PHP中正在删除的课程 HTML:
您可以从以下几个选项中进行选择: 1) 通过URL:创建超链接,如:
http://www.example.com/myprofile.php?deleteCourseid=23
http://www.example.com/myprofile.php?deleteCourseid=54
等
从myprofile.php:
if (isset($_GET["deleteCourseid"]){
$deleteme = (int)$_GET["deleteCourseid"];
// Some query here.
}
2) 通过邮寄的形式。同样的逻辑也适用
我建议您也使用一些会话逻辑来识别用户,以便您可以基于$_GET[“deleteCourseid”]和类似$_session[“userid”]之类的内容删除课程
假设您有如下表格:
[Postgresql]
CREATE tblusercourse(
usercourseid SERIAL PRIMARY KEY,
userid INTEGER REFERENCES tblusers(userid),
courseid INTEGER REFERENCES tblcourse(courseid),
)
最好的选择是使用ajax调用(您说您很了解)从概要文件中删除该项,因此您将有两个优点
这些框架中的大多数都是开源的,因此您可以通过查看代码来学习PHP。我个人推荐。你能提供相关的代码片段吗?从最初描述的声音来看,你想要的是一个表单,但正如@AdnanShammout所问的,你能发布一些代码吗?好的,我几乎所有的代码都在@greg的答案中。排序Guess谢谢Guess请不要把你的直接进入方法考虑下面的URL请求PATHYToScript脚本会发生什么PHP DeleTeEngEng==11 get不是一个合适的方法来做这个。@ AdNangSAMOUT GET会从URL中读取PARAMS。tom dick或harry将变量从任何计算机传递到脚本以删除数据的问题,我无法帮助您:-(嘿!今天天气真好!我想我会在外面编程。你们怎么说?@Will,:D该死的雪球效应!是的,这正是我想要的。@Erwin Moller还举了一个很好的例子,链接发送获取信息。只是想让thios更清楚一点,谢谢:)上面的代码会触发一个PHP通知,只需使用
isset($\u POST[“deleteCourse”]&!empty($\u POST[“deleteCourse”])
@AdnanShammout检查变量是否设置过多-未设置的变量被视为空。你是对的,我想的是($\u POST[“deleteCourse”!=”)
http://www.example.com/myprofile.php?deleteCourseid=23
http://www.example.com/myprofile.php?deleteCourseid=54
if (isset($_GET["deleteCourseid"]){
$deleteme = (int)$_GET["deleteCourseid"];
// Some query here.
}
CREATE tblusercourse(
usercourseid SERIAL PRIMARY KEY,
userid INTEGER REFERENCES tblusers(userid),
courseid INTEGER REFERENCES tblcourse(courseid),
)