新手提出的另一个问题。我有一个php变量,用于查询数据库的值。它存储在变量$ publish中,当用户单击超链接时,它的值(在数据库中)将更改。
if ($publish == '') { Link to publish.html } else { Link to edit.html }
后台发生的事情是我正在查询数据库表中存储在$ publish变量中的某些数据。如果$ publish为空,则会在弹出窗口中添加publish.html的链接。弹出窗口将处理一个表单,并将数据添加到数据库,这意味着$ publish不再为空。我想实现的是,一旦在弹出窗口中处理了表单并将数据添加到数据库后,链接应更改为edit.html。当页面将重新查询数据库时会发生这种情况,但是它应该在没有页面刷新的情况下发生。
使用javascript,jquery或ajax怎么能做到呢?请协助。
Javascript本身不能用于处理数据库。这是使用php(或您选择的服务器端语言)完成的。Ajax用于使用javascript向您的php脚本发送请求,而javascript则会与数据库进行通信。而且不需要页面刷新。
因此,您尝试使用ajax可以轻松实现。既然您提到了jquery,就可以在jquery中签出$ .ajax或$ .post方法,这使过程更加简单。
您需要使用ajax处理表单。Ajax请求被发送到一个php脚本,该脚本将在数据库中进行必要的更改并在响应中发送新链接(指向edit.html的链接)。收到响应后,只需用新的锚元素替换当前的锚元素。
例如
$.post(url, formdataobject , function (resp) { $("a.youra").text('edit').attr('href', resp); });
url -php脚本所在的位置
url
formdataobject -一个将表单数据作为键值对的javascript对象
formdataobject
第三个参数是匿名函数,也称为回调函数,因为仅当从服务器接收到响应时才会调用它。这是因为ajax请求是异步的。
在回调函数内部,jquery用于将anchor元素内的文本更改为edit,并将href属性更改为响应中出现的值。
edit
href
$ .post表示我们正在使用post方法。因此可以在php中将这些参数作为$ _POST数组的元素进行访问。更新数据库之后,您可以简单地echo删除新链接,它将在响应中收到。
echo
另外,还有其他格式,例如,您可以获取响应。xml,json。