1

以下で説明するように、クリックされた要素の内部 HTML を 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());
            }
        ?>
    });
});
4

5 に答える 5

2

PHP スクリプトに対してAJAX呼び出しを行い、要素の内容をデータ パラメータとして持つ必要があります。

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

または、それらがさらにある場合は、次を使用してクリック機能からコンテンツを取得できます$(this)

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

次に、のようなものを使用して PHP からアクセスできます$_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

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 に答える
0

サーバー側の php コードをクライアント側の JScript コードに入れて、それが実行されることを期待することはできません。実行することはできますが、これは通常、実装されている方法ではありません。

すでに JQuery を使用している場合は、jQuery.get()などのAJAX 関数の使用から始めてください。これらの関数がどのように機能するかの第一印象を得るために、jQuery.load()のような省略形の関数から始める方が簡単かもしれません。マニュアルにもいくつかの良い例があります。

于 2013-07-10T13:40:23.397 に答える