如何将数据从JavaScript传输到PHP?

时间:2013-07-10 13:34:17

标签: php javascript jquery html

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

5 个答案:

答案 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');

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

答案 4 :(得分:0)

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

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