2010-08-26 49 views
0

在我的页面上我有一个表格,这个表格有一个项目列表和一个编辑按钮。让Javascript跟PHP交谈

当单击编辑按钮时,我想填写表格中特定于该条目的信息。所有的信息都存储在一个mySQL数据库中,可以通过PHP访问。

我需要我的JavaScript编辑按钮来获取表格行标识符到PHP,它将查询数据库,返回正确的值,然后JavaScript需要接收这些条目并填写表单。

我该怎么做?

我可以通过填写一个变量,然后检查导致PHP模拟“事件”:

if($variable){ 
    [do query] 
} 

但是我怎么填补从Javascript变量铭记的HTML,JS和PHP嵌套在同一页?

回答

1

我该怎么做?

正常的解决方法是在你的索引页中有一个超链接,它指向一个显示编辑页面的页面。所以你会有像这样的网址:index.phpedit.php?id=42。你有什么理由不想这样做?

+0

我的系统的风格你有你的表,然后所有与此表有关的操作(添加条目,编辑和删除条目)出现在“弹出式窗口”中,这些只是javascripted .style.display =“block”和.style.display =“hidden” – 2010-08-26 12:37:41

+0

然后你的弹出窗口可以包含一个'iframe',它指的是'edit.php'。 – troelskn 2010-08-26 12:39:34

+0

所以我可以做的是有我的table.php编辑后点击table.php?edit = nameoffield然后做一个简单的$ _GET编辑值?欢呼声 – 2010-08-26 12:43:12

5

HTML,JS和PHP并不是真的“在同一个页面”,如果你不这样想,它会有所帮助。

您有一个PHP程序可以将HTML文档输出到浏览器。该文件嵌入了JS。

为了从JS发送消息到PHP,您需要发出HTTP请求。这可以通过生成一个表单并使用XMLHttpRequest或其他一些方法提交它来完成。

XMLHttpRequest是最常见的,并允许您在不离开页面的情况下执行此操作。这就是所谓的阿贾克斯。你可以在this question找到一些关于如何开始使用这项技术的建议。

您应该将访问PHP的数据库分隔成可重复使用的块,该块可在用于生成页面的URL和用于生成数据snippit的URL之间共享,以便使用迟来更新(格式化这个使用JSON的数据可能是个好主意)。

1

PHP在页面加载时运行,并且在页面重新加载之前不能再次访问。您的解决方案是将脚本更新或运行您所需要的任何查询,并使用Jquery Ajax

2

它看起来像一些很好的ole ajax会对你有好处。这个jQuery的实现会是这样的

$('.button-class').click(function(){ 
     $.ajax({ 
     url: 'your-php-page.php?id=xxx', //Call your php page here 
     success: function(data) { 
     $('.table-row').html(data); // Update your page with the data returned 
     } 
    }); 
    }); 
1

你做到这一点而进行异步调用服务器,并等待服务器的响应。这就是所谓的AJAX(异步JavaScript和XML)。

这里是一个基础教程:http://www.w3schools.com/ajax/default.asp

也有很多JS库(ES的JQuery等公司),如果你想使用AJAX,可能使您的生活更轻松