0

私は2つのphpページを持っています。最初の php ページには、MySQL を照会する関数があります。2 番目の php ページは関数を呼び出します。

MySQL を照会する関数は、2 番目の php ページによって呼び出されたときに正しく機能します。

`<?php myfunction($user_id); ?>`

ただし、2番目のphpページがロードされたときに関数をトリガーせず、代わりにユーザーがonclickを介してその2番目のページのマップ内の領域の長方形座標内をクリックしたときにトリガーするようには見えません:

 `<map id="map_id_01" name="map_name_01"><area shape="poly" id="area_id_01" class="" title="area_title_01" onclick="myfunction($user_id)" coords="360,236,696,236,696,448,360,448,360,237"/></map>` 

これにどのようにアプローチするのが最善かはわかりませんが、アイデアに感謝します。

4

2 に答える 2

2

まず、PHP と JavaScript の違いを学ぶ必要があります。

onclickこれが完了すると、サーバーが MySQL データで応答できるように、AJAX クエリをサーバーに送信する必要があることがわかります。

于 2012-12-18T01:43:15.877 に答える
1

JavaScript と php を組み合わせて使用​​する必要があります。ユーザーが四角形をクリックすると、別のページへの ajax 呼び出しを行う javascript 関数がトリガーされ、php 関数が実行されて結果が元のページに返されます。 div に配置するか、他の関数を実行することにより、ユーザー。PHP はサーバー側で実行されます。つまり、ユーザーがページを呼び出すとすぐに、すべての php コードが実行されます。

編集コードを表示するには:

<map id="map_id_01" name="map_name_01"><area shape="poly" id="area_id_01" class="" title="area_title_01" onclick="myfunction()" coords="360,236,696,236,696,448,360,448,360,237"/></map>
<script type='text/javascript'>
    var userId = '<?php echo $user_id; ?>';
    function myFunction() {
        $.ajax({
            async: false,
            type: 'POST',
            url: 'run_function.php',
            data: 'user_id=' + userId,
            dataType: 'json',
            success: function(msg) {
                if(msg.success) {
                   //Do whatever you want to with the return message here
                } else {
                   alert('failed to run the php function because: ' + msg.message);
                }
             }
        });
    </script>

次にrun_function.phpで...

$user_id = $_REQUEST['user_id'];
if($return = myfunction($user_id)) {
    $reply['success'] = true;
    $reply['message'] = $return;
} else {
    $reply['success'] = false;
    $reply['message'] = 'Failed to run function' // whatever error message you want
}
echo json_encode($reply);

**注: これは、javascript を使用して php 関数を実行し、その応答に基づいて動作する、非常に単純な例です。目的の結果を得るには、おそらくこのコードを編集する必要があります。また、$.ajax を実行するには、HTML に jquery を含める必要があります。javascript の xmlhttprequest を検索しない場合

于 2012-12-18T01:43:36.790 に答える