0

这是服务器上名为 getques.php 的 php 文件。在这个 php 文件中,变量 subnm1、chpno1 和 qnumber1 从客户端的 html-javascript 文件中发布。通过这些,可以访问服务器上的数据库,并将 SQL 查询的输出存储在变量 $px 中。

  <!DOCTYPE html>
 <html>
 <body>

 <?php
$x = $_POST["subnm1"];
$y = $_POST["chpno1"];
$z = $_POST["qnumber1"];


$con=mysqli_connect("localhost","compete7_bhunia","pr393ss","compete7_iitmock");
if (mysqli_connect_errno())
  {  echo "Failed to connect to MySQL: " . mysqli_connect_error();   }


$result = mysqli_query($con,"SELECT question, optiona, optionb, optionc, optiond,   
 coroption FROM $x WHERE qnumber = $z AND chapno = $y");

 while($row = mysqli_fetch_array($result))
  {
  $px = $row['question'];



 }


mysqli_close($con);
 ?> 

</body>
</html>

此 $px 显示已从数据库检索到的所需数据。现在,我希望将这个变量 $px 传递给同一个 html-javascript 文件。如何在 javascript 中获取它。相关部分如下。

 <script type="text/javascript">
 var abc = "<?=echo $px ?>";

  alert(abc);

  </script>

这没有显示 $px 的值。PL。帮助。

4

3 回答 3

0

避免使用短开标签。可能是你的 php 短开标签没有启用。所以试试这样..

var abc = "<?php echo $px ?>";

short_open_tag 指令)使用 PHP 5.3 或更低版本(但自 PHP 5.4.0 起,

实际上,在 PHP 5.3.0 提供的 php.ini-production 文件中,它们默认是禁用的:

$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off

因此,在您要分发的应用程序中使用它们可能不是一个好主意:如果未启用它们,您的应用程序将无法运行。

于 2013-11-14T11:14:02.937 回答
0

像这样使用:

<?php echo $px ?>";
于 2013-11-14T11:16:34.480 回答
0

正如其他人所说,您有语法错误,您的输出行应如下所示

var abc = "<?php echo $px ?>";

然而,这是不安全的(并且不要使用短的开放标签<?=,因为它们可能在 PHP < 5.4 中被禁用):考虑$px包含双引号,那么您的语法将是错误的;甚至可以通过这种方式注入 JavaScript 代码。不要这样做!

更安全的方法是使用json_encode

var abc = <?php echo json_encode($px) ?>;

(请注意,您不需要用引号括起来。)

附带说明一下,您很容易受到SQL 注入的攻击。请使用准备好的语句来防止这种情况。

于 2013-11-14T15:49:43.830 回答