0

我是 AJAX 新手,正在尝试通过 AJAX 和 jQuery 学习基本调用。我有一个简单的国家下拉列表,我想在其中选择一个特定的国家并将其值发送到服务器,在那里它将处理选择的国家并给出特定的输出。目前,它只能在 php 文件中回显简单的输出。这段代码存在某种问题。如果有人可以帮助我,我将不胜感激。谢谢

 <html>
 <head>
 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
 <script type="text/javascript">
 function load()
 {
      $.ajax({
      type:"GET",
      url: "test.php",
      data: { country: $("#country").val()}
      }).done(function(msg){
       $("#right #myDiv").html(msg);
      });
 }

 </script>
 </head>
 <body>

 <div id="main">
    <div id="left">
          Select Country: <select id="country" name="country">
            <option value="germany">Germany</option>
            <option value="england">England</option>
          </select>
          <input type="button" value="Run Query" onClick="load()"></input>
    </div> 

   <div id="right">
      <div id="myDiv"></div>  
   </div>  
 </div>

测试.php

 <?php
      $name=$_GET['country'];
      if($name=="England")
      {
       echo "Works"; 
      }
      else
      {
      echo "doesnt Work"; 
      }
 ?>
 ?>
4

3 回答 3

1

我看到的唯一问题是在你的 PHP 中你有

if($name=="England")

但是在你的html中你有

<option value="england">England</option>

它正在发送“英国”。 "england"!= "England"

另外,我会做

$("#country").val()

代替

$("#country option:selected").val()
于 2013-11-13T19:01:21.650 回答
0

您的代码中有 2 个错误:

 data: { country: $("#country option:selected").val()}

应该是 $("#country").val()

if($name=="England")

应该是“英国”

所以这是正确的代码:

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
function load()
{

  $.ajax({
  type:"GET",
  url: "test.php",
  data: {     country: $("#country").val()    }
  }).done(function(msg){
   $("#right #myDiv").html(msg);
  });

 }

 </script>
</head>
<body>

<div id="main">
<div id="left">
      Select Country: <select id="country" name="country">
        <option value="germany">Germany</option>
        <option value="england">England</option>
      </select>
      <input type="button" value="Run Query" onClick="load()"></input>
</div> 



对于 test.php :

 <?php
  $name=$_GET['country'];
  if($name=="england")
  {
   echo "Works"; 
  }
  else
  {
  echo "doesnt Work"; 
  }
 ?>

编辑:这对我来说很简单,但是:确保你通过你的网络服务器调用你的页面。您浏览器中的网址应为:

http://localhost/whatever/page.html

而不是(如果从您的硬盘驱动器):

file://c:/whatever/page.html
于 2013-11-13T19:03:49.280 回答
0

如果您的意思是从 php 文件中获取工作消息,请替换Englandengland,因为 php 区分大小写。

于 2013-11-13T19:04:39.543 回答