0

我目前需要使用一段类似的 PHP 代码。修改此代码不是一种选择。

<?
session_start();

include '../connection.inc';

$conn = new Connection();

echo "ID:" . $conn->generateID();
echo "\n";
?>

在 connection.inc 中,可以通过创建新的 Connection() 来建立与数据库的连接。从那里,数据库可以生成一个唯一的 16 字符 ID (conn->generateID)。有没有办法从 javascript 中检索执行这个 PHP 文件并从 javascript 中的 PHP-echo 中提取 16 个字符的 ID?

4

6 回答 6

3

有一个 AJAX 调用的替代方案,虽然它有点……不寻常。Output Buffering.

一个小例子:

<?php
    ob_start();  //This will stop all echoed output from being sent immediately.
    include("Whereveryourcodeis.php");
    ob_end_clean();  //Discards what has been stored and stops buffering.
?>

在此片段之后,您可以$conn->generateID在页面上的任何位置使用,而无需编写任何 JavaScript 代码。

希望这会有帮助。

于 2013-03-06T16:10:01.883 回答
0

您应该使用 jQuery 调用此处理程序,AJAX并指定 PHP 应该是结果以及调用成功完成后应return该做什么。AJAXAJAX

看这里:

http://api.jquery.com/jQuery.ajax/

于 2013-03-06T16:03:54.993 回答
0

尝试类似:

<script type="text/javascript">
var dbId = '<?= $conn->generateID(); ?>';
</script>
于 2013-03-06T16:04:48.897 回答
0
<?php

session_start();

include '../connection.inc';

$conn = new Connection();

?>    

然后在下面:

<script type="text/javascript">
var bd_id = '<?php echo $conn->generateID(); ?>';


// JUST TO TEST THAT THE ID IS AVALAIBLE IB JAVASCRIPT
alert(db_id); 
</script>
于 2013-03-06T16:05:44.070 回答
0
  1. 创建一个 JavaScript 文件,对调用 connection.inc 的包装 PHP 文件进行 AJAX 查询

  2. 在 JavaScript 中,调用 AJAX 查询并解析响应,这将为您提供 ID

最后,您可能应该为此使用 HTTPS。

于 2013-03-06T16:10:57.227 回答
0

尝试这样的事情

<?php
session_start();

include '../connection.inc';

$conn = new Connection();

print json_encode(array('ID' => $conn->generateID()));

或者,如果您无法更改上述代码,只需将 php 响应(使用 ajax 调用)加载到 js 变量中并使用正则表达式来匹配 ID。就像是:

$.get('url/to/php', function (resp) {
    var matches = resp.match(/ID:(.*)\n/);
    console.log(matches);
})

matches[1]将保存 ID 字符串。

于 2013-03-06T16:13:12.777 回答