在Javascript中捕获PHP回显

时间:2013-03-06 16:01:55

标签: php javascript

我目前需要使用类似的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?

6 个答案:

答案 0 :(得分: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。

我希望这会有所帮助。

答案 1 :(得分:0)

您应该使用jQuery AJAX调用此处理程序,并指定PHP应该return结果以及成功完成{{AJAX应该做什么AJAX 1}}来电。

见这里:

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

答案 2 :(得分:0)

尝试类似:

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

答案 3 :(得分: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>

答案 4 :(得分:0)

  1. 创建一个JavaScript文件,对包装PHP文件进行AJAX查询,该文件调用connection.inc

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

  3. 最后,您可能应该使用HTTPS。

答案 5 :(得分: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字符串。