0

ヒアドキュメント内にこのスクリプトがあり、jsonをテーブルに解析しようとしていますが、誇張しなければ実際に機能しています。スクリプト自体は 2 つの部分に分かれており、php の 2 つの異なるパブリック関数と通信します。最初の部分では、セッションごとにキャッチを使用して、別のテーブルから json を読み取ります。2 番目の部分は、その特定のセッションで行われたすべてのアクションをキャッチしようとしています。少し複雑に聞こえるかもしれませんが、2 番目の部分は機能していません。javascript から php に移動し、javascript に戻る場所。機能していない部分は次のとおりです。

var tblRow = '<tr><td>{$this->obj->display_ses('logs',
''+item.sesion)}</td><tr>

これは、そのセッション内で実行されたアクションの数を示す部分ですが、出力をキャッチしようとすると、 「item.session」が0sessionとして表示されます。

<script> $('#alllogins tbody').html(''); var myObject = {$this->obj->display_mysql_data_rows("logins.id as id,logins.ip as ip,logins.sesion as sesion, logins.country as country,logins.data as data,logins.user as user,admin.emri as emri, admin.mbiemri as mbiemri", "(logins,admin)","$str ORDER BY id DESC LIMIT $offset, $rowsperpage")}; $.each(myObject, function(i, item) { var tblRow = '<tr><td>{$this->obj->display_ses('logs', ''+item.sesion)}</td><td>'+item.ip+'</td><td>'+item.country+'</td><td>'+item.data+'</td></tr>'

$(tblRow).appendTo('#alllogins tbody'); });
</script>

これは、特定のセッション内で実行されたアクションの数を返す php 関数です。

public function display_ses($db, $str) { $r = mysql_query("SELECT *
from ".$db." WHERE session='".$str."'"); $num_rows =
mysql_num_rows($r); return $str; }

「return $str」は0sessionを示しています。私が見たように、javascriptの変数はphpに渡されていません。

私が変わるとき

{$this->obj->display_ses('logs', **''+item.sesion**)}

{$this->obj->display_ses('logs', **item.sesion**)}

出力には文字列itemsesionが表示されます。

4

1 に答える 1

0

文字列またはヒアドキュメントでは、関数呼び出しではなく、通常の変数とオブジェクト参照のみが展開されます。ヒアドキュメントを使用する代わりに、PHP モードを切り替える必要があります。

?>
w = '<tr><td> <?= $this->obj->display_ses('logs', ''+item.sesion) ?> </td><tr>

または、それらが単なる短いビットである場合は、PHP 文字列連結を使用できます。

echo '<script> $("#alllogins tbody").html(""); var myObject = '.
     $this->obj->display_mysql_data_rows("logins.id as id,logins.ip as ip,logins.sesion as sesion, logins.country as country,logins.data as data,logins.user as user,admin.emri as emri, admin.mbiemri as mbiemri", "(logins,admin)","$str ORDER BY id DESC LIMIT $offset, $rowsperpage").
     "</td><td>'+item.ip+'</td><td>'+item.country+'</td><td>'+item.data+'</td></tr>'";
于 2012-10-06T08:32:22.087 に答える