我目前需要使用类似的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?
答案 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}}来电。
见这里:
答案 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)
创建一个JavaScript文件,对包装PHP文件进行AJAX查询,该文件调用connection.inc
在JavaScript中,调用AJAX查询并解析响应,这将为您提供ID
最后,您可能应该使用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字符串。