我有一个关于php和javascript的问题。我对此很陌生。
我有一个php数组,我使用php函数来可视化页面中的这些信息。特别是,我使用了一个Jquery表,我有一个简单的php脚本来生成这个表:
在html <body>
标签中,我有:
<table cellspacing="1" class="tablesorter">
<thead>
<tr>
<th>GoTo</th>
<th>Latitude</th>
<th>Longitude</th>
<th>OtherInfo</th>
<th>Saved</th>
</tr>
</thead>
<tbody id="table">
<?php
$index = 0;
foreach ($entries as &$value) {
echo("<tr><td><a href='"javascript:moveToLocation($value->latitude,$value->longitude,'$value->otherInfo');'">Go to</a></td>");
echo("<td>".$value->latitude."</td>");
echo("<td>".$value->longitude."</td>");
echo("<td>".$value->otherInfo."</td>");
echo("<td id=textNotsaved>Not saved</td>");
echo("</tr>");
echo("<script> addMarker(".$value->latitude.",".$value->longitude.",".$index."); </script>");
$index++;
}
?>
</tbody>
</table>
现在,我想使用一些javascript函数(因此,javascript事件)来修改表中的一些单元格。
1)最好的方法是什么?
2)我的php数组对应于我的模型(如果我想在我的简单页面中考虑MVC),是否可以使用javascript修改php变量?
在回答您的问题之前,我想指出几件非常重要的事情。您的web应用程序的工作方式如下
- HTML是由您的应用程序在服务器上生成的(PHP)
- HTML正由您的web服务器提供给您的浏览器
- 正在从浏览器中解析HTML,以便初始化DOM树(
document
JavaScript对象及其所有子对象)
事实上,JavaScript和PHP是完全不可知的。这意味着JavaScript不知道或不关心您的代码是否来自PHP、Python或静态HTML页面,PHP也不知道或关心其生成的代码是否会被JavaScript操纵。
实际上您想做的是操作表的DOM元素,这是绝对可能的。不过,这些更改将保留在浏览器上,并且不会传播到服务器。
如果您想将这些更改发送到服务器,您必须准备一个接受数据的PHP文件,并将其保存到数据库、文件或任何用于保存数据的介质中。要做到这一点,你要么必须提交一个表单,要么使用AJAX。jQuery提供了处理AJAX请求的强大功能。
我希望这对你有所帮助。
X-editable可能适合您。如果您想更改值,它可以进行AJAX回发。
试试DEMO。