通过PHP将JQuery生成的元素连接到数据库

时间:2014-02-03 16:52:27

标签: php jquery mysql ajax

我有一个JQuery脚本,可以在按钮点击时动态生成HTML元素。

我使用PDO和PHP连接到mysql数据库,但我想知道如何直接从PHP直接在外部JS文件中定位动态生成的变量。

我尝试过使用AJAX但据我所知它似乎只从PHP页面获取数据而不是相反。

JQuery代码就是这样......

//我想在查找表中使用索引来填充select元素

$("#main").append('<select><option value=""></option></select>'); 

我以这种方式尝试了AJAX

function getData(dataToPass)
{
    $.ajax({
        type: "POST",
        url: "getData.php",
        data: dataToPass,
        success: function (returnedData) 
        {
             $("#main").html(returnedData);
        }
    });    
}

但你不能以这种方式传递变量吗?

我是PHP和JQuery的新手,非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

首先,PHP与JavaScript无关。它们是完全不同的语言,在它们自己的独立域中。如果你愿意,他们会合作。 PHP可以生成JavaScript代码,然后在客户端浏览器上运行。客户端浏览器不知道正在运行的JavaScript代码是由PHP生成的。 PHP也不知道如何使用浏览器。 PHP甚至不了解HTML。

因此,您无法将PHP传递给复杂的JavaScript对象,就像您无法将对象从PHP传递给JavaScript一样。但是,您可以传递值和数据结构(数组,数据对象)。

在这种情况下,您可以通过运行

在JavaScript中获取jQuery对象的内部HTML代码
dataToPass = {html: $("#main").html()}; //it will be a string

或构建一个只包含所需数据的对象,例如:

dataToPass = {elements: [
    {node: "select", options: [{node: "option", value: ""}]},
    {node: "input", value: "someValue", type: "text"},
]};

当你有这个JavaScript时,它会通过你已经拥有的脚本将这些数据发送到服务器。在服务器端,您将必须截取$_POST超全局,并要求HTML字符串,如果您选择第一个示例,则为$_POST['html'],或者通过{{1访问元素数组如果你使用了第二个例子。