以下代码将不会提交任何值。
@foreach ($tests as $test)
<?php $specialname = $test->test_identity; $myformtestid = str_replace("-", "", $specialname);?>
<form method="POST" action="/tickets/{{ $test->id }}/edit" name="{{$myformtestid}}" id="{{$myformtestid}}">
{{ method_field('patch') }}
{{ csrf_field() }}
<td style="width: 10%; padding-top: 2px; padding-bottom: 2px; border: 1px solid lightgrey;">
<select name="accept" class="form control" style="" onclick = "{{$myformtestid}}submitform()">
@if($test->accept==1)
<option value="1" selected>Accept</option>
<option value="0">Reject</option>
<option value="2">Pending</option>
@elseif($test->accept==0)
<option value="1">Accept</option>
<option value="0" selected>Reject</option>
<option value="2">Pending</option>
@else
<option value="1">Accept</option>
<option value="0">Reject</option>
<option value="2" selected>Pending</option>
@endif
</select>
<br>
Updated: {{\Carbon\Carbon::parse($ticket['updated_at'])->format('d-m-y') }}
<br>
<?php echo $myformtestid?>
<script>
$name = "#<?php echo $myformtestid ?>";
function {{$myformtestid}}submitform(){
$.ajax({
data: $($name).serialize(),
type: $($name).attr('method'),
url: $($name).attr('action'),
});
}
</script>@endforeach
但是,当我将$specialname
更改为字符串常量时,将提交第一个test_identity的接受值。
这里是什么问题?我是ajax的新手。非常感谢任何形式的帮助!
更新(10月14日)我使用的是iframe,而不是Ajax。这就是我所需要的。有关更多信息,请参考https://stackoverflow.com/a/26380651/11929921
[确定,现在我意识到问题可能出在$name = "#<?php echo $myformtestid ?>";
中的<script></script>
。我当时将其声明为php变量...应该改用var name = "#<?php echo $myformtestid ?>";
..