2013-07-10 22 views
1

如何在PHP中使用点击元素的内部HTML,如下所述?如何将数据从JavaScript传输到PHP?

$(function() { 
    $(".topic-list-items").click(function() { 
     // document.getElementById("content-of-the-topic").innerHTML= $(this).context.innerHTML; 
     <?php 
      $dbhost = '127.0.0.1'; 
      $dbuser = 'root'; 
      $dbpass = ''; 
      $conn = mysql_connect($dbhost, $dbuser, $dbpass); 
      if (!$conn) { 
       die('Could not connect: '.mysql_error()); 
      } 

      // here I want to table name dynamically, that is, "SELECT id FROM table". $variable 
      $sql = "SELECT id FROM ";  
      //$ variable is the clicked element's innerHTML 

      mysql_select_db('entries_database'); 
      $retval = mysql_query($sql, $conn); 

      if (!$retval) { 
       die('Could not get data: '.mysql_error()); 
      } 
     ?> 
    }); 
}); 
+3

你应该使用AJAX,如果你想从JS通过一些值到PHP – Darvex

+0

我建议ü使用jQuery的AJAX功能得到从PHP file.That的响应得到了内部HTML中的jQuery函数并将其发送到php文件。然后运行正常的php查询并将查询结果作为json响应发送到jquery函数。 –

回答

2

你需要做一个AJAX调用PHP脚本,让你的元素的内容作为数据参数。

data: {my_data: $(".topic-list-items").html()} 

或者,如果你有更多的人,你可以抓住使用$(this)点击功能的内容:

$(".topic-list-items").click(function() { 
     data: {my_data: $(this).html()} 
     ... 
}) 

然后你可以使用类似$_POST['my_data']从PHP访问它。

下面是一个例子:

$.ajax({ 
    type: "POST", 
    url: "my_php_script.php", 
    data: {my_data: $(".topic-list-items").html()} 
}).done(function(msg) { 
    alert("PHP says: " + msg); // you can do whatever you want here 
}); 

编辑

并请停止使用mysql_ *功能,因为它们已被弃用。看到这里:http://www.php.net/manual/en/function.mysql-query.php

另外,注意通过过滤任何输入SQL注入(虽然输入来自DOM元素,它很容易转换为数据库攻击)。

1

您的php正在运行服务器端,JavaScript正在运行客户端。如果你想把这些值给你php,你需要将它们提交回服务器。

查看ajax。

0

你不能把服务器端的php代码放到客户端的JScript代码中,并期望它被执行。它可以做到,尽管这通常不是它实施的方式。

如果您已经在使用JQuery,请从AJAX functions开始,如jQuery.get()。从jQuery.load()这样的速记功能开始,可能会更容易,以便获得这些功能如何工作的第一印象。他们在手册中也有一些很好的例子。

0

添加与#hiddenElementId一个隐藏的表单元素在你的HTML,然后分配到任何你喜欢的值,并提交表格。这会将参数发布到您的php目标。

var myInnerHTML; 
$(".topic-list-items").click(function() { 
     myInnerHTML= $(this).context.innerHTML; 
     $("#hiddenElementId").val(myInnerHTML); 
     $("#formId").submit(); 
} 
相关问题