Javascript 通过POST请求ajax和jQuery从多阵列运行forloop
现在我想做的是,我收到了学生的id,现在我需要将其传递到下面的php页面,但是当我收到这个数组之后是脚本Javascript 通过POST请求ajax和jQuery从多阵列运行forloop,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,现在我想做的是,我收到了学生的id,现在我需要将其传递到下面的php页面,但是当我收到这个数组之后是脚本 <script type="text/javascript"> $(document).ready(function(){ $('#emailIds').on('change',function(){ var stuemID = $(this).val(); // alert(stuemID); console.l
<script type="text/javascript">
$(document).ready(function(){
$('#emailIds').on('change',function(){
var stuemID = $(this).val();
// alert(stuemID);
console.log(stuemID);
if(stuemID){
$.ajax({
type:'POST',
url:'getDetails.php',
data:'semid='+stuemID,
success:function(html){
//alert('Done');
//$('#alerttrig').hide();
}
});
}else{
alert('Please choose atleast one student to view data.');
//$('#alerttrig').show();
}
});
});
</script>
<?php
require_once 'connectivity.php';
//print_r ($_POST['semid']);
//exit;
$semid = explode(',',$_POST['semid']);
//print_r ($semid);
//exit;
foreach ($semid as $emid){
//echo $emid;
print_r ($emid);
exit;
if (isset($emid) & !empty($emid)){
$query="SELECT *, COUNT(*) AS count FROM test_schedule ts
JOIN students s ON s.id=ts.student_id
JOIN students_validity sv ON sv.student_id = s.id
WHERE s.id='$emid' AND ts.exam_id != 76 AND ts.exam_id != 75 AND ts.exam_id != 83 AND ts.exam_id != 84
GROUP BY ts.student_id
HAVING COUNT(*) > 1
ORDER BY s.id ASC";
print_r ($query);
exit;
$qryexec=mysqli_query($connect,$query);
//Count total number of rows
if (mysqli_num_rows($qryexec) > 0){
while($row = mysqli_fetch_assoc($qryexec)){
echo '<scrtip type="text/javascript">';
echo 'alert('.$row['name'].')';
echo '</script>';
}
}
else{
echo 'Something went wrong.!';
}
}
}
?>
因此,现在我想转换数组,并使其在forloop中可访问,并显示通过查询执行接收到的数据警报 查看文件
<html>
<head>
<title></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
</head>
<body>
<select multiple="multiple" name="emailIds[]" id="emailIds" tabindex="2" class="select-multiple">
<option value="">Select Student</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</body>
</html>
<script type="text/javascript">
$(document).ready(function(){
$('#emailIds').on('change',function(){
var stuemID = $(this).val();
if(stuemID){
$.ajax({
type:'POST',
url:'getDetails.php',
data: { semid : stuemID },
success:function(data){
alert(data);
}
});
}else{
alert('Please choose atleast one student to view data.');
//$('#alerttrig').show();
}
});
});
</script>
getDetails.php
<?php
foreach($_POST['semid'] as $semval){
// Do the code you need
echo $semval.' ';
}
exit();
?>
输出在选择和多选时获得警报:我不清楚您的意思。你说的这个阵列具体在哪里?你想用它做什么?你试过什么,怎么不起作用?客户端成功回调中的html变量中有什么?我基本上有两个问题我想把通过查询执行收到的值作为警报ii作为我分解的POST变量,我想要一个forloop,它将通过脚本数组[0]=>1[1]=>2在每个id推送上运行我对此感到困惑,我只想触发两件事,一个是当用户选择一个项目或从下拉列表中逐个选择“我的查询应该工作”时,第二个是当执行查询时,他选择的值将显示一个警报,其中行值在查询运行>选择学生?>foreach之后执行$semid为$emid{//echo$emid;print_r$emid;exit;如果设置为$emid&!emid为空{$query=SELECT,从测试计划中计数ts在s.id上加入学生s=ts.student\U id在sv.student\U id=s.id上加入学生sv有效性sv,其中s.id='$emid'和ts.exam\U id!=76和ts.exam\U id!=75,ts.exam\U id!=83和ts.exam\U id!=84,按ts.student\U id分组,计数*>1ORDER BY s.id ASC;print\r$query;exit;$qryexec=mysqli\u query$connect$query;我仍然没有达到我想要的效果。它只触发第一个值,甚至没有移动到第二个值。