首页 > 解决方案 > 为什么我不能将 Jquery 变量传递给 PHP

问题描述

我试图将一个 jquery 变量传递给 php 这是代码

<label>Turnamen</label>
<div class="input-group">
   <div class="input-group-prepend">
      <span class="input-group-text">
         <input id="checkturnamen" type="checkbox">
      </span>
   </div>
   <select id="colturnamen" name="colturnamen" class="form-control" disabled="">
      @foreach ($nav as $navigasi)
         @if ($turnamen == $navigasi->waktu)
            <option value="terpilih" selected>{{$navigasi->waktu_text}}</option>
         @else
            <option>{{$navigasi->waktu_text}}</option>
         @endif
      @endforeach
   </select>
</div>

<label>Grup</label>
<div class="input-group">
    <div class="input-group-prepend">
        <span class="input-group-text">
           <input id="checkgrup" type="checkbox">
        </span>
    </div>
    <select id="colgrup" class="form-control" disabled="">
        <option value="terpilih" selected>NULL</option>
    </select>
</div>



<script>
   $(document).ready(function(){
      $('#colturnamen').change(function(){
          var pilihturnamen =  'February 2019';
          $('#colgrup').append('<?php $pilihturnamen ="'+pilihturnamen+'";echo($pilihturnamen); foreach($nav as $navigasi){if($pilihturnamen == $navigasi->waktu_text){if (is_null($navigasi->jumlah_grup)){}else{echo ("<option class="."autogrup".">A</option>");$alphabet = "A";for ($i = 1; $i < $navigasi->jumlah_grup; $i++){$alphabet++;echo ("<option class="."autogrup".">".$alphabet."</option>");}}}}?>');
          });
 </script>

如果我运行它显示的代码

   <select id="colgrup" class="form-control">
       <option value="terpilih" selected="">NULL</option>
            February 2019
   </select>

然后我将脚本更改为此(我手动插入字符串)

<script>
       $(document).ready(function(){
          $('#colturnamen').change(function(){
              var pilihturnamen =  'February 2019';
              $('#colgrup').append('<?php $pilihturnamen ="February 2019";echo($pilihturnamen); foreach($nav as $navigasi){if($pilihturnamen == $navigasi->waktu_text){if (is_null($navigasi->jumlah_grup)){}else{echo ("<option class="."autogrup".">A</option>");$alphabet = "A";for ($i = 1; $i < $navigasi->jumlah_grup; $i++){$alphabet++;echo ("<option class="."autogrup".">".$alphabet."</option>");}}}}?>');
              });
 </script>

我再次运行它它可以工作

<select id="colgrup" class="form-control">
   <option value="terpilih" selected="">NULL</option>
   February 2019
  <option class="autogrup">A</option>
  <option class="autogrup">B</option>
  <option class="autogrup">C</option>
  <option class="autogrup">D</option>
  <option class="autogrup">E</option>
</select>

问题是为什么我不能将 jquery 变量中的文本传递给那个 php 代码?

标签: phpjquerylaravel

解决方案


页面请求:流程如下所示:

  1. 服务器端 PHP 代码渲染

  2. 响应发送到浏览器

  3. 浏览器开始渲染和执行 JS

你会想要AJAX打电话并“成功”然后执行你的JS代码。

以下是AJAX使用 jQuery 调用的示例:

$.ajax({
  type: "GET",
  url: url,
  success: success,
  ...
});

推荐阅读