如何在DOM中共享php和javascript之间的数据?
如果您阅读了,您可能知道在本分配中不允许在php和javascript DOM之间共享数据的方式:如何在DOM中共享php和javascript之间的数据?,php,javascript,dom,Php,Javascript,Dom,如果您阅读了,您可能知道在本分配中不允许在php和javascript DOM之间共享数据的方式: +-----------+ +------------+ +----------| +----------+ +-----------+ |javascript +---+Ajax Request+--+handle.php+-+result.xml+->+DOM parser | +-----------+ +------------+ +----------
+-----------+ +------------+ +----------| +----------+ +-----------+
|javascript +---+Ajax Request+--+handle.php+-+result.xml+->+DOM parser |
+-----------+ +------------+ +----------+ +----------+ +-----------+
因此,我正在考虑将mysql中的所有信息作为一个数组一次性获取,并尝试在没有ajax请求的情况下通过javascript访问该数组
我能想出的唯一办法是
+---------+ +-----------------------------+ +--------------------------------------+
|Php array| | write in Dom make it hidden | | Parse the hidden element by DOM API |
+---------+ +-----------------------------+ +--------------------------------------+
但是这看起来一点也不优雅,有没有更好的方法呢?查询数据库,并将结果作为JavaScript打印在脚本标记中。现在,所有数据都存储在本地JavaScript变量中,您可以随意使用这些变量
<script type="text/javascript">
products = [];
<?php
mysql_connect('host', 'username', 'password');
mysql_select_db('dbname');
$sql = "SELECT productName from products WHERE productTYPE = 1";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo "products.push('" . addslashes($row['productName']) . "'); \n";
}
?>
//do something with all the stuff in the products array
alert("There are " + products.length + " products in the array.");
</script>
产品=[];
为什么不首先将mysql数据作为json对象传递给DOM?@PeterKirby这是我想要的答案,但我对此一无所知,我不知道如何做?我如何使用php生成JSON和Javascript中的可用内容我们为什么要做你的家庭作业?我希望这不是大学。。。花几千美元去上课,然后不去做学习材料的工作将是一种巨大的浪费(在学习编程时,弄清楚如何去做就是你学习的方式!)。这也是对每个在你简历上看到大学的人犯下的欺诈行为。如果这是家庭作业,你就是坏人。@DanGrossman对此表示抱歉。我应该努力学习,因为更好的学习者但这看起来一点也不优雅,有更好的方法吗?
这不是“不优雅”-这实际上是做你想做的事情的非常常见的方法:)例如,我们用数据生成js文件。这就是制造商型号下拉列表在这里的工作方式(该页面是俄语的,请从页面顶部选择前2个下拉列表)。Js文件itsef是firms_models.Js
(我们希望它能被用户的浏览器缓存,并从不执行ajax和SQL查询中获益)太棒了!我怎么会想不出这个解决方案,但在这种情况下,我不能使用外部javascript,而只能使用内联javascript让php完成这项工作。这里没有外部javascript。这与您编写所有其他javascript所用的文档相同。如果不在HTTP响应中打印数据(这个),或者不发出另一个请求(AJAX),就无法从PHP获取数据。如果你的老师想让你在第一个列表的基础上填充第二个列表,而不使用AJAX,这就是他/她想要的。顺便说一句,我可以利用json的使用吗?我的意思是让php生成json,让javascript将其作为一个对象。是的,你可以。它只涉及更改上面两行PHP代码。我将把它作为一个练习留给你,我将构建一个JSON对象——可以更紧凑,例如var products=代码>