2013-11-13 6 views
0

Я новичок в AJAX и пытаюсь изучить основные вызовы через AJAX и jQuery. У меня есть простой список стран, где я хочу выбрать конкретную страну и отправить ее значение на сервер, где он будет обрабатывать страну и выбирать ее. На данный момент это может просто эхопростой вывод в php-файле. Существует некоторая проблема с этим кодом. Буду признателен, если кто-нибудь сможет мне помочь. благодарявыпадающий список посылает значения через вызов AJAX

<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> 

test.php

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

В чем проблема? Также '$ (" # country "). Val()' будет работать нормально. – tymeJV

+1

«Есть какая-то проблема с этим кодом.» «Говорить« это не работает »недостаточно. Что должно произойти, что происходит вместо этого, и какая отладка вы сделали и что она вам сказала? –

+0

Это не отразилось бы на чем-нибудь, вот в чем проблема – user2925595

ответ

1

Единственная проблема, которую я вижу, что в вашем PHP у вас есть

if($name=="England") 

Но в вашем HTML у вас есть

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

Отправка "англия". "england"! = "England".

Кроме того, я бы просто сделать

$("#country").val() 

вместо

$("#country option:selected").val() 
+0

спасибо за комментарий, я попробовал, хотя он не работал – user2925595

0

Существует 2 ошибки в коде:

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

должно быть $ ("# страна") .val()

и

if($name=="England") 

shoudl быть "англия"

Так вот правильный код:

<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"; 
    } 
?> 

EDIT: Это довольно прямо для меня, но: убедитесь, что вы вызываете свою страницу через свой веб-сервер. URL в вашем браузере должна быть:

http://localhost/whatever/page.html 

и нет (если с жесткого диска):

file://c:/whatever/page.html 
+0

попробовал, не работал, я не думаю, что значение получает, чтобы отправить вообще – user2925595

+0

что вы пробовали? если вы выберете «Англию» в раскрывающемся списке, то напишите «Работы», и если вы запустили Германию, она напишет «не работает». Так в чем проблема ? – CtrlX

+0

hhhmmm, вы уверены, что используете свой веб-сервер, а не свой жесткий диск, чтобы открыть свою страницу html ??? – CtrlX

0

, если вы имеете в виду слишком получить работу сообщения из PHP файла заменить England с england, потому что PHP является деликатный случай.

+0

попробовал, не работал, хотя – user2925595

+0

удалил лишний тег php end в php-файле? – Kaveh

+0

неважно исправлено это – user2925595

Смежные вопросы