我的逻辑正确吗?使用Mysql的Ajax和/或PHP

我的逻辑正确吗?使用Mysql的Ajax和/或PHP,php,mysql,ajax,Php,Mysql,Ajax,我有一个显示项目列表的页面。网页编码与html,css,php和使用mysql数据库 在该页面上,用户可以请求将其中一个项目添加到其特殊列表中 我希望在页面中执行此操作,而不必进行完整的页面刷新。所以用户点击按钮添加,项目被添加到他们的列表中,按钮被更改,所以他们不能再添加它 我是否使用ajax调用在页面后面运行代码,然后刷新div 还是有更好更有效的方法 我更喜欢一个php选项,以防用户关闭js,但不知道是否可以使用js完成 感谢您的帮助。如果您想要动态内容(更改页面而不刷新),您必须使用Ja

我有一个显示项目列表的页面。网页编码与html,css,php和使用mysql数据库

在该页面上,用户可以请求将其中一个项目添加到其特殊列表中

我希望在页面中执行此操作,而不必进行完整的页面刷新。所以用户点击按钮添加,项目被添加到他们的列表中,按钮被更改,所以他们不能再添加它

我是否使用ajax调用在页面后面运行代码,然后刷新div

还是有更好更有效的方法

我更喜欢一个php选项,以防用户关闭js,但不知道是否可以使用js完成


感谢您的帮助。

如果您想要动态内容(更改页面而不刷新),您必须使用Javascript。要执行您所要求的操作,您可以通过Ajax调用PHP脚本,该脚本使用新项输出div的内容,然后根据该响应更改div。

Dagon完全正确。创建一个处理请求的表单,并将表单的操作设置为要处理请求的PHP脚本。请注意,尽管这可以是处理ajax请求时使用的同一个php脚本,但不一定非要如此

很多时候,当我实现这种功能时,我会将PHP设置为将变量作为POST发送(在禁用JS的情况下),并将ajax请求作为GET发送,这样我就可以使用单个PHP页面来处理“相同”的请求。使用AJAX时,我将让脚本回显特定代码,然后让AJAX响应句柄返回

if(val == 'OK') {
 //in event of success, perhaps you want to hide the original form and show a success message
} else {
  //do something like unhide a hidden div to display an error
}

如果关闭JavaScript,则必须重新加载页面。在您的情况下,可以非常方便地重写需要重写的元素。服务器发送的是一个简单的json。使用PHP框架也可能是一个好主意,因为您询问的方式似乎(出于尊重,并且不想冒犯)表明您没有使用任何框架,并且可能会遇到错误,从而使脚本易受攻击(例如sql注入)


如果您的访问者没有启用JavaScript,并且您希望以任何方式提供服务,那么您必须重新加载页面。首先检查是否值得这么做,谁是您的客户/访客,他们使用什么浏览器。。。诸如此类的问题有助于您设计页面/应用程序。

简言之,是的,您是正确的。没有php唯一的方法不会刷新整个页面,检查他们是否有js或警告他们。