Šta je novo?

Laravel: Kako da uhvatim ID iz polja pretrage ako je uneto vise parametara iz baze?

shone83

Poštovan
Učlanjen(a)
04.11.2015
Poruke
49
Poena
54
Imam index() funkciju gde sam izvukao par promenljivih koji idu ka index stranici gde ih koristim za neka select polja, i to je u formi gde ce posle iz te stranice ici u neku bazu.

I u tom controlleru imam ajaxData() funkciju gde sam pomocu ovog tutorijala napravio autocomplete search gde iz jednog reda baze izvacim vise parametara odvojenih spejsom.

Ono sto me muci je, kako da preko submita kad nadjem to preko autocomplete pretrage dobijem ID tog reda ili object. I to bi trebalo da bude u index() funkciji da bi tu promenljivu dalje postao u istu stranicu. Tamo cu dalje da pokupim ostala polja iz tog reda sto mi trebaju da bi iskoristio za tu novu tabelu. Nadam se da nisam bio konfuzan.

Controller:
Kod:
public function index()
{
    $towns = Auth::user()->town->id;
    $town[$towns] = Auth::user()->town->name;

    $user = Auth::user()->id;

    $activist = Activist::where('town_id', Auth::user()->town_id)->pluck('name', 'id')->all();
    $cp = CP::where('town_id', Auth::user()->town_id)->pluck('name', 'id')->all();

    return view('members.index', compact('towns', 'user', 'activist', 'capillary'));
}

public function ajaxData(Request $request)
{
    $query = $request->get('query', '');

    $streets = Street::select('id', 'name')
      ->where('name', 'LIKE', '%'.$query.'%')
      ->get();

    $results = array();

    foreach($streets as $sn) {
        $street_numbers = StreetNumber::select('from', 'to')
          ->where('town_id', Auth::user()->town_id)
          ->where('street_id', $sn->id)
          ->get();

          foreach($street_numbers as $st) {
              $data = array(
                'name' => $sn->name." ".$st->from." ".$st->to
              );
              $results[] = $data;
          }
    }

    return response()->json($results);
}

Route:
Kod:
Route::resource('add', 'AddMembersController');
Route::get('add-ajax',array('as'=>'autocomplete.ajax','uses'=>'AddMembersController@ajaxData'));

View:
Kod:
<div class="row">
    {!! Form::open(['route'=>'add.index', 'method'=>'GET']) !!}
        <div class="col-sm-12">
          <div class="panel panel-default">
              <div class="panel-heading">Претрага</div>
              <div class="panel-body">
                  <div class="input-group">
                      {!! Form::text('search_text', null, array('class' => 'form-control','id'=>'search_text')) !!}
                      <span class="input-group-btn">
                        {!! Form::button('<i class="fa fa-search"></i>', ['name'=> 'search_text', 'id'=>'get_cust_data', 'type' => 'button', 'class'=>'btn btn-default']) !!}
                      </span>
                  </div>
              </div>
          </div>
        </div>
    {!! Form::close() !!}
</div>

U principu kad bi dobio object iz ovoga samo bi u input polju na stranici uradio nesto ovako:

Kod:
<div class="col-sm-6">
  <div class="form-group">
    {!! Form::label('street', 'Улица') !!}
    {!! Form::select('street', [$object? $object->street : null => $object? $object->street : null], null, ['class'=>'form-control', 'readonly']) !!}
  </div>
</div>
 
ajaxData ne valja. Treba da $data dodaš u results a ne da pregaziš. Koristi array_push($result, $data);
Napravi upit u bazi tako da dobiješ sve što ti treba odjednom. Upiti u for petlji ubijaju performanse.

Čitam već 5-ti put tvoje pitanje i ništa mi nije jasno. :)

Sent from my Nexus 6P using Tapatalk
 
Poslednja izmena:
Moj najveci problem je uvek bio da objasnim ono sto mi treba :D

Gledaj ovako (sad kad zakomplikujem jos vise), sad imam polje gde kad krenem da kucam ime ulice ono mi izlazi 3 stvari: ime ulice, od do (ali bez zapete vec samo odvojeno). Meni treba sad kad ja odaberem to iz autokomplita i kliknem na submit izadju jos neke informacije iz tog reda baze gde su ove tri stvari. E, ali mi je problem sto autocomplete ima posebnu funkciju od index funkcije i vraca response()->json($results); i ja sad imam undefined variable ako pokusam da uhvatim ovo u view. Ti moji pokusaji nisu ovde u kodovima...

Da li sam malo uspeo da pojasnim :)
 
Jok.. čitam i ne razumem :)
Aj lepo zipuj web.php, kontroler i view i okači negde pa da pogledam.
Ja sam razumeo da ti želiš da dok kucaš nešto izlazi nekakav autocomplete i kada izabereš taj autocomplete da imaš id sloga iz baze. Pošto preko ajaxa dobijaš rezultate za autocomplete, zašto ne bi u tom odgovoru dodao i id. Id ne mora da se ispisuje ali može da se ubaci kao atribut nekog HTML elemenata koji se dinamički kreira prilikom generisanja sadržaja autocomplete (sad sam i ja zakomplikovao).

Sent from my Nexus 6P using Tapatalk
 
Poslao na pp.

U principu meni ne treba da ispisuje ID, samo sam pomenuo jer ne znam kako drugacije da dobijem ono sto mi treba. Meni treba da ako imam red:

id street from to settlement unit

i ako u autocomplete izadje street from to i ja kliknem na submit ispise settlement unit u dva posebna polja.

To je prva faza koja mi treba zbog pregleda sta je jos u tom redu ali mi treba i promenljiva da iskoristim sva ta polja za unos u novu tabelu preko forme. Ta forma se nalazi u istom polju gde je to i ispisano...
 
Nazad
Vrh Dno