Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][JavaScript][PHP]Wynik ajax'u w zależności od wyniku skryptu php
Forum PHP.pl > Forum > Przedszkole
jackuss
Witam, mam taki problem, z ktorym nie moge sobie dac rady. Chce aby wynik działania skryptu ajax był zależny od wyniku skryptu php.

Skrypt php:

  1. <?php
  2. require "funkcje_php.php";
  3.  
  4. $zmienna=$_GET['v'];
  5.  
  6. connection();
  7.  
  8. $wynik=mysql_query("select Menu_ID from podmenu where Menu_ID='".$zmienna."'");
  9.  
  10. $result=mysql_num_rows($wynik);
  11.  
  12. if($result == 0)
  13. {
  14. echo '<input type="submit" value="Dodaj podstrone" name="podstron">';
  15. echo '<input type="submit" value="Usuń" name="usun">';
  16. }
  17. else
  18. {
  19. $wynik=mysql_query("Select Menu_ID, nazwa from podmenu where Menu_ID='".$v."'") or die("Złe zapytanie");
  20.  
  21. echo '<form action="" method="post">';
  22. echo '<select>';
  23.  
  24. while($r=mysql_fetch_assoc($wynik))
  25. {
  26. echo '<option value="'.$r["Menu_ID"].'">'.$r["nazwa"].'</option>';
  27. }
  28. echo '<input type="submit" value="wybierz">';
  29.  
  30. echo '</select>';
  31. echo '</form>';
  32.  
  33. }
  34.  
  35. ?>


Jak widać w zależności od zapytania SQL chce dodać do obecnego formularza 2 przyciski, albo utworzyć nowy formularz. W jaki sposób mam to zrobić, co zmienić w skrpycie ajaxowym? '

  1. function podMenu(str)
  2. {
  3. if (str=="")
  4. {
  5. document.getElementById("podmenu").innerHTML="";
  6. return;
  7. }
  8. if (window.XMLHttpRequest)
  9. {
  10. zadanie=new XMLHttpRequest();
  11. }
  12. else
  13. {
  14. zadanie=new ActiveXObject("Microsoft.XMLHTTP");
  15. }
  16. zadanie.onreadystatechange=function()
  17. {
  18. if(zadanie.readyState == 4 && zadanie.status == 200)
  19. {
  20. document.getElementById("podmenu").innerHTML = zadanie.responseText;
  21.  
  22.  
  23. }
  24. else
  25. {
  26. document.getElementById("podmenu").innerHTML = "<img src=\"loader.gif\">";
  27. }
  28. }
  29.  
  30. zadanie.open("GET", "podmenu.php?v="+str, true);
  31. zadanie.send();
  32. }


if(zadanie.readyState == 4 && zadanie.status == 200)
{
document.getElementById("podmenu").innerHTML = zadanie.responseText;
"Co tutaj zmienić?"

}
timon27
Sprawdzałeś swój kod?
Bo robi to co chcesz aby robił.
Do diva o id podmenu (masz takiego, nie?) wczytuje albo dwa buttony albo całego forma.
jackuss
Działać działa tylko wygenerowany kod html będzie niepoprawny, ponieważ te buttony będą wisieć w powietrzu a chce żeby były dołączone do formularza, na którym wykonywany jest skrypt ajax po zdanienu onchange.
  1. <form>
  2. <select onchange="wykonaj(this.value)">
  3. <option>menu1</option>
  4. <option>menu2</option>
  5. <option>menu3</option>
  6. </select>
  7. </form>
  8.  
  9. <div id="podmenu"></div>


W tym kodzie przyciski zostaną dodane do diva pod formularzem i nie będa z nim bezpośrednio związane. Dlatego potrzebuje to zrobić w taki sposób, żeby albo dodawało mi wygenrowany kod ze skryptu php do formularza albo do diva o id "podmenu".
timon27
Jeśli chcesz aby butony były dodawane nie na dole, tylko w formularzu to czemu diva zamieściłeś pod formularzem a nie w formularzu?
jackuss
Nie zrozumielismy się smile.gif Wynikiem działania skryptu php są 2 możliwe opcje. Jeżeli pierwsze zapytanie do bazy zwróci 0 wierszy to zostaną dodane 2 przyciski do formularza. W tym momencie rzeczywiscie wypadałoby zrobić diva w formularzu. Ale, jeżeli wynik będzie inny niż 0 to ma dodać zupełnie oddzielny formularz na stronie i musi być on w oddzielnym divie poza formularzem. I tutaj nie wiem jak zrealizować w skrypcie ajax'owym tą warunkowość.
timon27
to nie możesz po prostu przepisać pierwszego formularza, tylko z dodanymi dwoma przyciskami?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.