使用foreach在数据库laravel javascript中双重输入每个输入类型的文本

Posted

技术标签:

【中文标题】使用foreach在数据库laravel javascript中双重输入每个输入类型的文本【英文标题】:Double entry of each input type text in the database laravel javascript using foreach 【发布时间】:2018-11-03 06:07:41 【问题描述】:

我的数据库中有这个。

人 |位置

学生 1 旧金山

student2 旧金山

学生 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();
        );
      
    
  );

【问题讨论】:

【参考方案1】:

这是你想要的吗?

代码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();

【讨论】:

Ohmygad 非常感谢您....您是救生员。从昨天开始我就一直在这样做.. 我确实给你投票了,但它说我需要 15 声望才能公开。 完成!嘿,如果你不介意,我还有一个问题。 @Cryptanalyst 所以你应该打开另一个问题。 我还要等 90 分钟才能发帖呼呼呼【参考方案2】:

错误由此开始:

" $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 + ' />');
         );
         
       
    );
    );

【讨论】:

可能是您丢失了 value 属性的双引号。 ` $("#slat").append(''); $("#slng").append(''); ` 可以把请求数组的数据发给我吗? 你是什么意思?视图或控制器或模式或数据库? 请执行:var_dump((array)$request) 我应该把它放在哪里?

以上是关于使用foreach在数据库laravel javascript中双重输入每个输入类型的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 8 中使用 foreach 从多选中保存数据?

Laravel 5.1 不能在集合上使用 @foreach

如何使用 js 在刀片 laravel 中的 foreach 上更新变量

使用foreach在数据库laravel javascript中双重输入每个输入类型的文本

laravel - 无法在 foreach 之外获取数据

如何在 laravel 中解码 Json 对象并在 laravel 中应用 foreach 循环