Двойная запись каждого типа ввода текста в базе данных laravel javascript с использованием foreach - PullRequest
0 голосов
/ 24 мая 2018

У меня есть это в моей базе данных.

Человек |Местоположение

студент1 Сан-Франциско

студент2 Сан-Франциско

студент1 Нью-Йорк

студент2 Нью-Йорк

В контроллере есть проблема.вот код:

foreach((array)$request->stud as $person){
  foreach((array)$request->studlocation as $location){
    $hm = new HouseMate;

    $hmid = rand();
    $hm->hmid=$hmid;
    $hm->rId_fk=$renterid;
    $hm->person=$person;  

    $hm->location=$location;
    $hm->save();
  }
  $hm->delete();
}

А на мой взгляд:

$(document).ready(function() {
  $("#dropdown").change(function() {
    var selVal = $(this).val();
    $("#textboxDiv").html('');
    $("#schoolloc").html('');

    if(selVal > 0) {
      for(var i = 1; i<= selVal; i++) {
        $("#textboxDiv").append('<input type="hidden" value="student'+i+'" name="stud[]" />');
        $("#schoolloc").append('<input type="text" name="studlocation[]" id="studlocation'+i+'" />');
        var input = document.getElementById('studlocation'+i+'');
        var autocomplete = new google.maps.places.Autocomplete(input);

        autocomplete.addListener('place_changed', function () {
          var place = autocomplete.getPlace();
        });
      }
    }
  });

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

ошибка начиналась на этом:

"$ hm-> lat = $ slat [$ i];"

это мой контроллер:

$students = (array)$request->stud;
$locations = (array)$request->studlocation;
$slat=(array)$request->slat;
$slng=(array)$request->slng;
for ($i = 0; $i < count($students); $i++){
$hm = new HouseMate;
$hmid = rand();
$hm->hmid=$hmid;
$hm->rId_fk=$renterid;
$hm->person=$students[$i];  
$hm->location=$locations[$i];
$hm->lat=$slat[$i];
$hm->lng=$slng[$i];
$hm->save();

}

и это мое мнение:

     $(document).ready(function() {
     $("#dropdown").change(function() {
     var selVal = $(this).val();
     $("#textboxDiv").html('');
     $("#schoolloc").html('');

    if(selVal > 0) {
        for(var i = 1; i<= selVal; i++) {
             $("#textboxDiv").append('<input type="hidden" 
    value="student'+i+'" name="stud[]" />');
             $("#schoolloc").append('<input type="text" 
    name="studlocation[]" id="studlocation'+i+'" />');
        var input = document.getElementById('studlocation'+i+'');
        var autocomplete = new google.maps.places.Autocomplete(input);
    $("#slat").html('');
    $("#slng").html('');
    autocomplete.addListener('place_changed', function () {
    var place = autocomplete.getPlace();
    var lat = place.geometry.location.lat();
    var lng = place.geometry.location.lng();

  $("#slat").append('<input type="hidden" name="slat[]" value='+lat+' />');
  $("#slng").append('<input type="hidden" name="slng[]" value='+lng + ' />');
         });
         }
       }
    });
    });
0 голосов
/ 24 мая 2018

Это то, что вы хотите?

Код php:

$students = (array)$request->stud;
$locations = (array)$request->studlocation;
for ($i = 0; $i < count($studens); i++){
    $hm = new HouseMate;

    $hmid = rand();
    $hm->hmid=$hmid;
    $hm->rId_fk=$renterid;
    $hm->person=$students[i];  

    $hm->location=locations[i];
    $hm->save();
    $hm->delete();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...