如何在PHP中使用被点击元素的内部HTML?如下所述?
$(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());
}
?>
});
});
答案 0 :(得分:2)
您需要对PHP脚本进行AJAX调用,并将元素的内容作为数据参数。
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 :(得分:1)
你的php正在运行服务器端,javascript正在运行客户端。如果你想将这些值传递给php,你需要将它们提交回服务器。
查看ajax。
答案 2 :(得分:0)
您不能只将服务器端的PHP代码放入客户端JScript代码中并期望它被执行。它可以做到,虽然这通常不是它的实现方式。
如果您已经在使用JQuery,请首先使用AJAX functions之类的jQuery.get()。从jQuery.load()这样的速记函数开始可能更容易,以便首先了解这些函数的工作原理。他们在手册中也有一些很好的例子。
答案 3 :(得分:0)
您可以使用jquery ajax函数
//the get method
$.get('file.php', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
http://api.jquery.com/jQuery.get/
//the load function
$('#result').load('file.php');
答案 4 :(得分:0)
在HTML中添加带有#hiddenElementId的隐藏表单元素,然后将值分配给您喜欢的任何内容,并提交表单。这会将参数发布到您的php目标。
var myInnerHTML;
$(".topic-list-items").click(function() {
myInnerHTML= $(this).context.innerHTML;
$("#hiddenElementId").val(myInnerHTML);
$("#formId").submit();
}