2014-12-14 2 views
0
  • Создание веб-сайта, который печатает некоторые данные в таблице из базы данных mySQL с использованием PHP.
  • Я бы хотел, чтобы эти данные обновлялись с помощью другого поискового запроса, когда я переворачиваю переключатель.

Вот Javascript функция переключателя:Изменение выходных данных PHP с использованием Javascript

function switch2hecked() { 
    if (document.getElementById("switch2").checked) 
          // update mySQL query } 

Мой PHP код выглядит следующим образом:

 $sql = "SELECT * FROM $table WHERE day = 'mon' ORDER BY realtime"; 
     $result = mysqli_query($con, $sql); 
     while($row = mysqli_fetch_array($result)) {    
      echo 
      "<div class='dtime' >".$row["displaytime"]."</div>" 
      ."<div class='name' >".$row["name"]."</div>" 
      ."<div class='venue' >".$row["venue"]."</div>" 
      ."<div class='address' >".'<a href="'.$row["loc"].'"target="_blank"> '.$row["address"].'</a>'."</div>" 
      ."<div class='signup' >".$row["signup"]."</div>" 
      ."<div class='email' >".'<a href="mailto:'.$row["email"].'"target="_blank"> '.$row["email"].' </a>'."</div>" 
      ."<div class='details' >".$row["details"]."</div> 
      <br>"; 
      } 

Все, что нужно каким-то образом, чтобы пропускать переменную в PHP-код, поэтому я могу использовать его для if-утверждения вокруг запроса.

Помогите оценить!

ответ

0

Вы можете добиться этого с помощью AJAX.

AJAX позволяет передавать Javascript с PHP и наоборот, который обновляет часть веб-страницы без обновления всей страницы. Вы также можете использовать AJAX с jQuery. Его довольно легко настроить.

Readup эта документация, которая имеет примеры тоже: .ajax() | jQuery

0

Вот ваш Javascript код:

function switch2hecked() { 
    if (document.getElementById("switch2").checked) { 
     document.location = 'http://mydomain/api/data?switch2=1' 
    } 

И ваш PHP код:

 if ($_GET['switch2']) { 
      $sql = "SELECT * FROM $table WHERE day = 'mon2' ORDER BY realtime"; 
     } else { 
      $sql = "SELECT * FROM $table WHERE day = 'mon' ORDER BY realtime"; 
     } 
     $result = mysqli_query($con, $sql); 
     while($row = mysqli_fetch_array($result)) {    
      echo 
      "<div class='dtime' >".$row["displaytime"]."</div>" 
      ."<div class='name' >".$row["name"]."</div>" 
      ."<div class='venue' >".$row["venue"]."</div>" 
      ."<div class='address' >".'<a href="'.$row["loc"].'"target="_blank"> '.$row["address"].'</a>'."</div>" 
      ."<div class='signup' >".$row["signup"]."</div>" 
      ."<div class='email' >".'<a href="mailto:'.$row["email"].'"target="_blank"> '.$row["email"].' </a>'."</div>" 
      ."<div class='details' >".$row["details"]."</div> 
      <br>"; 
      } 

Конечно, если вы хотите иметь более динамичную страницу вы можете использовать AJAX, но это немного сложнее.

0

Jquery Ajax решение. Вот пример

function switch2hecked() { 
    var toggle = document.getElementById("switch2").checked; 
    $.ajax({ 
     type: "GET", 
     url: "path/to/your/page.php", 
     dataType: "json", 
     data: { enabled: toggle } 
    }).done(function(json) { 
     // Do the magic here... 
     // the output of the php page will be in the json variable. 
    }); 
} 

Таким образом, ваша страница PHP будет вызываться с параметром GET.

path/to/your/page.php?enabled=true 

Вам нужно будет вывести результат вашего запроса в действительную строку JSON на странице PHP. Вот как вы можете это сделать:

if ($_GET['enabled']) { 
    $sql = "SELECT * FROM $table WHERE day = 'mon2' ORDER BY realtime"; 
} else { 
    $sql = "SELECT * FROM $table WHERE day = 'mon' ORDER BY realtime"; 
} 
$result = mysqli_query($con, $sql); 
echo json_encode($result); 
Смежные вопросы