Ajax odebrania wyniku i na podstawie wyniku wykonanie akcji

Odpowiedz Nowy wątek
2019-07-17 13:34
0

Mam takie pytanie czy da się za pomocą metody load w zmiennje odebrać wynik wyołania metody z php i napodstawie wyniku wywołac pewną akcję np chciałbym, żeby w tym wyniku była zapisana pewna wartośc i po tym jaka będzie wartośc wykonać akcję np ta $("#updateDrugs"+i).html("<input type='button' class='btn btn-success' onclick=update_drugs('"+ url2 + "'," + idDrugs + "," + i + ",'" + url3 + "') value='Uaktualnij wpis'>");

function edit_drugs(url,idDrugs,i,url2,url3) {
        $("#EditDrugs"+i).load(url + "?idDrugs=" + idDrugs);
        $("#updateDrugs"+i).html("<input type='button' class='btn btn-success' onclick=update_drugs('"+ url2 +  "'," + idDrugs + "," +  i + ",'" + url3 + "') value='Uaktualnij wpis'>");
    }

Pozostało 580 znaków

2019-07-17 14:28
0

Wynik zapytania ajaxowego możesz wrzucić do zmiennej w taki sposób:

$.get(url + '?idDrugs=' + idDrugs).done(function (response) {
  alert(response); // wyświetli zwrotkę od serwera
});

edytowany 2x, ostatnio: Patryk27, 2019-07-17 14:28

Pozostało 580 znaków

2019-07-17 14:30
0
Patryk27 napisał(a):

Wynik zapytania ajaxowego możesz wrzucić do zmiennej w taki sposób:

$.get(url + '?idDrugs=' + idDrugs).done(function (response) {
  alert(response); // wyświetli zwrotkę od serwera
});

A teraz co można zrobić żeby skrypt php przesłał w odpowiezi jakąś wartośc , żeby wykonać w zależności jaka to będzie wartośc jakąś akcję ?

Pozostało 580 znaków

2019-07-17 14:37
0

W PHPie robisz zwyczajnie echo, a potem w JSie:

$.get(url + '?idDrugs=' + idDrugs).done(function (response) {
  if (response == 'a') {
    alert('odpowiedź a'):
  } else {
    alert('inna odpowiedź');
  }
});

Pozostało 580 znaków

2019-07-17 14:42
0

Ale echo mam do czegoś innego do echo mam do wstawienia tabeli.

Pozostało 580 znaków

2019-07-17 14:44
0

Niestety nie wiem jak dokładnie wygląda Twój kod i co próbujesz osiągnąć - odpowiedziałem na Twoje pytanie (co można zrobić żeby skrypt php przesłał w odpowiezi jakąś wartośc , żeby wykonać w zależności jaka to będzie wartośc jakąś akcję ?) zgodnie z tym, co pokazałeś.


Pozostało 580 znaków

2019-07-17 14:51
0

Tak wygląda w js

    function edit_drugs(url,idDrugs,i,url2,url3) {
        $("#EditDrugs"+i).load(url + "?idDrugs=" + idDrugs);
        $("#updateDrugs"+i).html("<input type='button' class='btn btn-success' onclick=update_drugs('"+ url2 +  "'," + idDrugs + "," +  i + ",'" + url3 + "') value='Uaktualnij wpis'>");
    }
    function update_drugs(url,id,i,url2) {
        var name = $("#nameProduct").val();
        var portion = $("#portion").val();
        var date = $("#date").val();
        var time = $("#time").val();
        $("#viewDrugs"+i).load(url + "?id=" + id + "&nameProduct=" + name + "&portion=" + portion + "&date=" + date + "&time=" + time);
        $("#EditDrugs"+i).load(url2 + "?id=" + id);
    }

PHP

        public function updateRegistration() {
            $Drugs = new Drugs;
            if ( (Auth::check()) ) {
                $date = $Drugs->checkDate(Input::get("date"),Input::get("time"));
                if (Input::get("nameProduct") == "") {
                    array_push($this->error, "Wpisz nazwę");
                }
                if ($date == -1 or $date == -2) {
                    array_push($this->error, "Błędna data");
                }
                if (Input::get("portion") == "") {
                    array_push($this->error, "Uzupełnij pole dawka");
                }
                else if (!is_numeric(Input::get("portion"))) {
                    array_push($this->error, "Pole dawka musi być numeryczne");
                }
                if ((Input::get("date") == "" or  Input::get("time") == "")) {
                    array_push($this->error, "Uzupełnij pole data i czas");
                }
                if (count($this->error) != 0) {
                    return View("ajax.error_array")->with("error",$this->error);
                }

                else {
                    //$price = $Drugs->sumPrice(Input::get("portion"),Input::get("nameProduct"));
                    $Drugs->editRegistration($Drugs->date,Input::get("id"));
                    return View("ajax.succes")->with("succes","Pomyslnie dodano");
                }
            }
        }

plik ajax.succes

<div class="ajax_succes">{{$succes}}</div>

I teraz chodzi o to, żeby ze względu na to co zwróci

$("#viewDrugs"+i).load(url + "?id=" + id + "&nameProduct=" + name + "&portion=" + portion + "&date=" + date + "&time=" + time);

Wykonała się
$("#EditDrugs"+i).load(url2 + "?id=" + id);
Albo
$("#??"+i).load(url3);
Tylko ze to w divie #EditDrugs"+i zwraca nie wartośc a wkleja w div coś. może poprostu wykonam dodatkowe load i tam mi coś zwróci.

Pozostało 580 znaków

2019-07-18 13:29
0

Właśnie chcę to zrobić w taki sposób, że wykonać akcje w zależności co zwróci
var result = $("#viewDrugs"+i).load(url + "?id=" + id + "&nameProduct=" + name + "&portion=" + portion + "&date=" + date + "&time=" + time).text();
Tylko teraz działa tylko w przypadku kiedy drugi raz nacisnę przyciks i nie wiem co jest grane.

    function update_drugs(url,id,i,url2) {
        var name = $("#nameProduct").val();
        var portion = $("#portion").val();
        var date = $("#date").val();
        var time = $("#time").val();
        var result = $("#viewDrugs"+i).load(url + "?id=" + id + "&nameProduct=" + name + "&portion=" + portion + "&date=" + date + "&time=" + time).text();
        if (result == "Pomyslnie dodano") {
            alert("result");
        }
        //$("#EditDrugs"+i).load(url2 + "?id=" + id);
    }

    function edit_drugs(url,idDrugs,i,url2,url3) {
        $("#EditDrugs"+i).load(url + "?idDrugs=" + idDrugs);
        $("#updateDrugs"+i).html("<input type='button' class='btn btn-success' onclick=update_drugs('"+ url2 +  "'," + idDrugs + "," +  i + ",'" + url3 + "') value='Uaktualnij wpis'>");
    }

html

            <tr>
                <td class="center" colspan="2">
                    <div id="updateDrugs{{$i}}">
                        <input type="button" class="btn btn-success" onclick="edit_drugs('{{url('/ajax/edit_drugs')}}',{{$list->idDrugs}},{{$i}},'{{url('/ajax/update_drugs')}}','{{url('/ajax/show_update_drugs')}}')" value="Edytuj wpis">
                    </div>
                </td>
            </tr>

Pozostało 580 znaków

2019-07-19 12:14

Już sobie poradziłem
Rozwiązaniem było coś takiego.

var result = $("#viewDrugs"+i).load(url + "?id=" + id + "&nameProduct=" + name + "&portion=" + portion + "&date=" + date + "&time=" + time,function() {
          if (result.text() == "Pomyslnie dodano")  {
              alert("dobrze");
          }
        });

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0