1

如何在 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());
            }
        ?>
    });
});
4

5 回答 5

2

您需要对 PHP 脚本进行AJAX调用,并将元素的内容作为数据参数。

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

或者,如果您有更多,您可以使用以下命令从 click 函数中获取内容$(this)

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

然后您可以使用类似$_POST['my_data'].

这是一个例子:

$.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 元素,但很容易转化为数据库攻击)。

于 2013-07-10T13:37:59.400 回答
1

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

看看 ajax。

于 2013-07-10T13:38:34.887 回答
0

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

如果您已经在使用 JQuery,请先使用jQuery.get()AJAX 函数从jQuery.load() 之类的速记函数开始可能会更容易,以便初步了解这些函数的工作原理。他们在手册中也有一些很好的例子。

于 2013-07-10T13:40:23.397 回答
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');

http://api.jquery.com/load/

于 2013-07-10T13:40:55.003 回答
0

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

var myInnerHTML;
$(".topic-list-items").click(function() {
       myInnerHTML= $(this).context.innerHTML;
       $("#hiddenElementId").val(myInnerHTML);
       $("#formId").submit();
}
于 2013-07-10T13:41:40.443 回答