2013-01-12 53 views
0

我的应用程序中有2个选择框。现在当用户提交页面时发生了什么,在选择框#studentadd中选中(突出显示)的所有学生将被附加到#studentselect选择框中。但是在第一个选择框中未选择的选项不会被附加到第二个选择框。在选择框中未选中的选项不会附加到另一个选择框中

我的问题是如何在'#studentadd'选择框中取消未选择的选项以添加到'#studentselect'选择框中?

与我的PHP/AJAX的问题,因为我做的是使用AJAX导航到单独的PHP文件,插入在#studentadd选择框学生到数据库中。但插入只发生在#studentdd选择框中的那些学生荧光笔。它不会在那些未在`#studentadd'中选择的选项上执行插入操作。

下面是一个选择框#studentadd

<select multiple="multiple" name="addtextarea" id="studentadd" size="10"> 
    <option value='1'>u08743 - Joe Cann</option> 
    <option value='4'>u03043 - Jill Sanderson</option> 
    <option value='7'>u08343 - Craig Moon</option> 
</select> 

下面是选择框中的学生应该被追加到:

<select id="studentselect" name="studenttextarea"></select> 

下面是jQuery的/ AJAX:

function submitform() {  

    $.ajax({ 
     type: "POST", 
     url: "updatestudentsession.php", 
data: { 
    addtextarea:$('#studentadd').val() 
     }, 
     dataType:'json', //get response as json 
     success: function(result){ 
        if(result.errorflag){ 

     //do your stuff on getting error message 
     var newHtml="<span style='color: red'>"+result.msg+"</span>"; 
     $("#targetdiv").html(newHtml); //i am displaying the error msg here 

     $('#targetdiv').show(); 

    }else{ 
     //you got success message 

     var newHtml="<span style='color: green'>"+result.msg+"</span>"; 
      $("#targetdiv").html(newHtml); 


      //append students you want to add to assessment into student exist select box 
      var selectedOption = $('select#studentadd'); 
      $('select#studentselect').append(selectedOption.html()); 

      //blank #studentadd select box 
      $('#studentadd').empty(); 

       $('#targetdiv').show(); 
     } 
    } 
    });   
} 

以下是访问fr的单独的php文件updatestudentsession.php OM阿贾克斯和将数据插入到数据库:

$studentid = (isset($_POST['addtextarea'])) ? $_POST['addtextarea'] : array(); 
$sessionid = (isset($_POST['Idcurrent'])) ? $_POST['Idcurrent'] : array(); 

$insertsql = " 
INSERT INTO Student_Session 
(SessionId, StudentId) 
VALUES 
(?, ?) 
"; 

if (!$insert = $mysqli->prepare($insertsql)) 
{ 
    // Handle errors with prepare operation here 
}  

$success = true; 

foreach($studentid as $id) 
{ 
    $insert->bind_param("ii", $sessionid, $id); 

    if($insert->execute() === false) 
    { 
     $success = false; 
    } 
} 

$insert->close(); 

if($success) 
{ 
    echo json_encode(array('errorflag'=>false,'msg'=>"Students have been successfully added into the Assessment")); 
} 
else 
{ 
    echo json_encode(array('errorflag'=>true,'msg'=>"An error has occured, Students have not been added into the Assessment")); 
} 
+0

这是不是预期的行为?为什么不在服务器上修复? – mplungjan

+0

@mplungjan这个php插件在它的功能上看起来很好。但我不确定,但发布数据用于插入时,是否仅从选择框中发布选择选项?我想在选择框中发布未选中的选项。实际上,我想要的是'#studentadd'选择框中的任何选项都应该被添加到第二个选择框中并且被插入到db中,如果在选择框中选择(突出显示)或不在于 – Manixman

回答

1

啊,你要选择的所有目标的选择提交:

function submitform() {  
    $('#studentadd option').attr('selected', 'selected'); 

还是你的意思是

$('#studentselect option').attr('selected', 'selected'); 

? ?

+0

#studentadd,那是非常聪明的思维。谢谢您的回答 :) – Manixman

相关问题