2015-07-06 3 views
0

Я сразу же доберусь до сути.AJAX не отправляет параметры по

У меня есть список, который показывает всех в ДБ, которые подтвердили, что они будут участвовать в матче. Я хочу, чтобы список изменился в зависимости от того, какая группа выбрана из окна выбора.

Вот что я до сих пор: HTML & AJAX

  <html> 
      <head> 
      <script> 
      function showUser(str) { 
       if (str == "") { 
        document.getElementById("attendYes").innerHTML = ""; 
        return; 
       } else { 
        if (window.XMLHttpRequest) { 
         // code for IE7+, Firefox, Chrome, Opera, Safari 
         xmlhttp = new XMLHttpRequest(); 
        } else { 
         // code for IE6, IE5 
         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        xmlhttp.onreadystatechange = function() { 
         if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
          document.getElementById("attendingYes").innerHTML = xmlhttp.responseText; 
         } 
        } 
        xmlhttp.open("GET","attending.php?q="+str,true); 
        xmlhttp.send(); 
       } 
      } 
      </script> 
      </head> 
      <body> 

      <form> 
      <select name="users" onchange="showUser(this.value)"> 
       <option value="">Select a group:</option> 
       <option value="CMA">CMA</option> 
       <option value="CM1">CM1</option> 
       <option value="CP2">CP2</option> 
       <option value="CBBC">CBBC</option> 
       </select> 
      </form> 
      <br> 
      <div id="attendYes"><b>Person info will be listed here...</b></div> 

      </body> 
      </html> 

А вот 'attending.php' страница, что выбор предназначен для отправки:

  <?php 
      $q = intval($_GET['q']); 

      $con = mysqli_connect('-----','-----','-----','-----'); 
      if (!$con) { 
       die('Could not connect: ' . mysqli_error($con)); 
      } 

      mysqli_select_db($con,"handsomejack_co_forms"); 
      $sql="SELECT * FROM stats WHERE activity='".$q."' AND attend='0' ORDER BY username ASC"; 
      $result = mysqli_query($con,$sql); 

      echo "<table> 
      <tr> 
      <th>User</th> 
      </tr>"; 
      while($row = mysqli_fetch_array($result)) { 
       echo "<tr>"; 
       echo "<td>" . $row['username'] . "</td>"; 
       echo "</tr>"; 
      } 
      echo "</table>"; 
      mysqli_close($con); 
      ?> 

Я изменил sql из ". $ Q." к определенному выбору - как CMA - и он работал, поэтому я знаю, что проблема связана с отправкой q.

Любые идеи относительно того, что может быть проблемой?

Cheers.

+0

Вы проверили с помощью отладчика, что передается функции js. – RiggsFolly

+0

'document.getElementById (" txtHint ")' is not id is wrong here? – Jai

+0

@Jai моя ошибка, я уже изменил это, но почему-то скопировал старую версию! Редактировал для будущего ref. –

ответ

1

Есть два три вещи, которые я хотел бы предложить:

A.)
Изменить идентификатор целевого дел. как у вас есть attendYes, и вы используете txtHint.

B.) @ js
Вы можете попробовать отправить запрос в .send(), как показано ниже.

xmlhttp.open("GET","attending.php",true); 
xmlhttp.send("q=" + encodeURIComponent(str)); 

С) и @ PHP:

Вы не должны использовать intval() хотя я не очень хорошо в PHP, но согласно документации это что-то другое. поэтому я предлагаю вам изменить:

$q = intval($_GET['q']); 

к этому:

$q = $_GET['q']; 
+0

Спасибо, Джай, это был intval() - предназначенный только для целых чисел, и я забыл избавиться от него, когда я изменил имена выбранных слов на слова. –

+0

@ HandsomeJack Добро пожаловать и рад помочь. – Jai

+0

Эй, я знаю, что речь не идет о вышеупомянутом вопросе, но если бы я хотел использовать это для двух других вариантов, как мне это сделать? то есть на примере выше показан список для сохраненных при посещении, я хотел бы создать списки для не посещающих и неподтвержденных. (Мы можем переместить это в чат вместо этого?) –

1

Нет такого элемента, как document.getElementById("txtHint"). Обновите его правильному:

document.getElementById("attendYes").innerHTML = xmlhttp.responseText; 
+0

Эй, извините, я скопировал неправильное издание в код. Я уже изменил это, поэтому список заполняется, когда я использовал определенную группу вместо того, чтобы пытаться использовать «q». Любые другие идеи? –

+0

Определенная группа? –

0

Почему вы используете don't метод Jquerys $.ajax вместо этого. Его проще реализовать, и он запускается во всех основных браузерах.

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