如何通过javascript将html代码的select-option值传递到php文件中?

时间:2014-02-08 13:54:16

标签: javascript php ajax

我的脚本代码用于数据库中的ajax函数。 代码如下所示。

 <script>
  function showUser(str)
  {
   .....
  }
  var selectedLang2 = document.getElementById('lang2').value;
  var selectedSubject1 = document.getElementById('subject1').value;
  xmlhttp.open("GET","db_"+selectedLang2+".php?q="+str,true);
 xmlhttp.send();
 } 
 </script>

根据上面的脚本代码,脚本代码只调用选择选项值的php文件。所以我的选择选项代码与下面相同

 <form>
 <select name="lang2" id="lang2">
    <option value="co">한국어</option>
    <option value="en">English</option>

    <option value="af">Afrikaans</option>

    <option value="ar">Arabic</option>
    .......
  </select>
  <select name="subject1" id="subject1">
     <option value="a">Infection : bacteria and virus </option>

     <option value="b">Infection : virus, fungus and etc</option>
     <option value="c">Malignant neoplasm</option>
      ----
  </select>

所以我想使用php变量代码(这里是$lang1$subject1),如下面的代码所示。

  <?php
  $q = htmlspecialchars($_GET['q']);
  $lang2 = $REQUEST_['lang2'];
  $subject1 = $REQUEST_['subject1'];


  $con = mysqli_connect('localhost','root','autoset','my_db');
  if (!$con)
  ......

我如何编写脚本代码。

 /*Here is target point.
  var selectedLang2 = document.getElementById('lang2').value;
  var selectedSubject1 = document.getElementById('subject1').value;
  xmlhttp.open("GET","db_"+selectedLang2+".php?q="+str,true);
  xmlhttp.send(); */

请给我一点建议。 谢谢

1 个答案:

答案 0 :(得分:0)

如果不指定url参数,则无法通过GET发送任何信息。但是您可以在请求URL中添加额外的参数来实现此目的。

改变你的JS:

var selectedLang2 = document.getElementById('lang2').value;
var selectedSubject1 = document.getElementById('subject1').value;
xmlhttp.open("GET","db_" + selectedLang2 + ".php?q=" + str  + "&lang2=" + selectedLang2 + "&subject1=" + selectedSubject1,true);
xmlhttp.send();

更改您的PHP:

$q = htmlspecialchars($_GET['q']);
$lang2 = htmlspecialchars($_GET['lang2']);
$subject1 = htmlspecialchars($_GET['subject1']);