PHP JS 警报中未显示变量值

PHP variable value not being displayed in JS alert

在下面的代码中,我生成了一个 php 表单,该表单从我正在处理的 arp 网络攻击的用户那里获取值。但是,我试图在 javascript 警报中显示发送“$loops”的数据包数量,当我 运行 代码中没有显示数据包数量时,我没有不知道出了什么问题,所以如果有人可以通过并运行我的代码,我将非常感激。

<form method ='post' action ="<?php echo $_SERVER['PHP_SELF'];?>">

<?php $loops = "";?>

<b> <p>Number of packets to be sent:</p>
<input type="text" name="loops" value="<?php echo $loops;?>">
<br><br></b>

<?php
$php_var = $loops;?>


<p style="text-align: center;">
<button onclick="myFunction()">Submit</button></p><br>  
<script>
    function myFunction() {
            var js_var = "The number of packets sent is: <?php echo $php_var; ?>";
                    alert(js_var);
                        }
</script>
</font>
</form>


<?php
if($_SERVER["REQUEST_METHOD"]== "POST"){
if(isset($_POST["loops"])){
    $loops=$_REQUEST['loops'];
}
?>

您正在将 $php_var 分配给此处的空白。

<?php $loops = "";?>

<?php $php_var = $loops;?>

所以,它没有显示任何价值。

我认为您需要获取用户在文本框中输入的值。

<input type="text" name="loops" value="<?php echo $loops;?>" id="loops"> // Observe the added `id` attribute.

你可以这样做:

<script>
function myFunction() {
  //var js_var = "The number of packets sent is: <?php echo $php_var; ?>";
  var val = document.getElementById('loops').value;
  var js_var = "The number of packets sent is: " + val;
  alert(js_var);
}
</script>

试一试

<?php $loops = "123";?>
    function myFunction() {
      var js_var = "The number of packets sent is: <?php echo $php_var; ?> ";
      alert(js_var);
    }

试试这个代码

 <form method ='post' action ="<?php echo $_SERVER['PHP_SELF'];?>">

          $loops = isset($_POST["loops"])?$_POST["loops"]:"";

         <b> <p>Number of packets to be sent:</p>
        <input type="text" name="loops" value="<?php echo $loops;?>">
        <br><br></b>

       <?php
       $php_var = $loops;?>


       <p style="text-align: center;">
         <button onclick="myFunction()">Submit</button></p><br>  
        <script>
function myFunction() {
        var js_var = "The number of packets sent is: <?php echo $php_var; ?>";
                alert(js_var);
                    }
        </script>
     </font>
       </form>


      <?php
    if($_SERVER["REQUEST_METHOD"]== "POST"){
      if(isset($_POST["loops"])){
         $loops=$_REQUEST['loops'];
    }
 ?> 

您应该始终在页面的开头使用 PHP。它是必需的,以便您可以获得 HTML.

中可用的变量
    <form method ='post' action ="<?php echo $_SERVER['PHP_SELF']; ?>">

    <?php $loops = ''; ?>
    <?php if ($_SERVER["REQUEST_METHOD"] == "POST") {
            if (isset($_POST["loops"])) {
                $loops = $_REQUEST['loops'];
            }
        }
        ?>
        <b>
            <p>Number of packets to be sent:</p>
            <input type="text" name="loops" value="<?php echo $loops; ?>">
            <br><br>
        </b>
        <?php $php_var = $loops; ?>
        <p style="text-align: center;">
            <button onclick="myFunction()">Submit</button>
        </p>
        <br>  
        <script>
            function myFunction() {
                var js_var = "The number of packets sent is: <?php echo $php_var; ?>";
                alert(js_var);
            }
        </script>
</form>

你应该在 $loop 变量初始化后检查是否有 $_REQUEST['loops']

所以代码应该是

<?php
    $loops = "";

    if($_SERVER["REQUEST_METHOD"]== "POST"){
        if(isset($_POST["loops"])){
            $loops=$_REQUEST['loops'];
        }
    }
?>

<form method ='post' action ="<?php echo $_SERVER['PHP_SELF'];?>">

<b> <p>Number of packets to be sent:</p>
<input type="text" name="loops" value="<?php echo $loops;?>">
<br><br></b>

<?php
$php_var = $loops;?>


<p style="text-align: center;">
<button onclick="myFunction()">Submit</button></p><br>  
<script>
    function myFunction() {
            var js_var = "The number of packets sent is: <?php echo $php_var; ?>";
                    alert(js_var);
                        }
</script>
</font>
</form>