Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax表单问题:无法从选择的多个表单获取数据_Javascript_Php_Ajax_Forms - Fatal编程技术网

Javascript ajax表单问题:无法从选择的多个表单获取数据

Javascript ajax表单问题:无法从选择的多个表单获取数据,javascript,php,ajax,forms,Javascript,Php,Ajax,Forms,我认为我的问题很简单(但我真的很简单),我没有使用jquery或任何其他插件,只是使用纯JavaScript和PhP。 我有一个带有选择字段的简单表单,其中可以选择多个项目,例如: <form id="test" name="test"> <input type="hidden" id="norman" value="bates"/> <select multiple="multiple" name="fred[]" id="fred[]"> <

我认为我的问题很简单(但我真的很简单),我没有使用jquery或任何其他插件,只是使用纯JavaScript和PhP。 我有一个带有选择字段的简单表单,其中可以选择多个项目,例如:

<form id="test" name="test">
<input type="hidden" id="norman" value="bates"/>
<select multiple="multiple" name="fred[]" id="fred[]">
    <option value="1">one</option>
    <option value="2">two</option>
    <option value="3">three</option>
    <option value="4">four</option>
</select>
<input type="button" id="button" value="test" onclick="callAHAH('POST','my-page.php','container','loading...','modify-user')"/>    
但我所得到的都是假的所以

  • 如何获取已选择的所有选择数据,然后
  • 如何将其格式化为文章的文本字符串

    my_array[]=1$my_array[]=2 etc
    
  • 提前谢谢你的帮助

    好的,我有答案了

      function callAHAH(method,url, pageElement, callMessage,form_name){
      //window.location = url;
    
    //document.getElementById(pageElement).innerHTML = callMessage;
    try{
        req = new XMLHttpRequest(); /* ff */
    }
    catch(e){
        try{
            req = new ActiveObject("Msxml2.XMLHTTP"); /* some ie */
        }
        catch(e){
            try{
                req = new ActiveXObject("Microsoft.XMLHTTP"); /*other ie */
            }
            catch(e){
                req = false;
            }
        }
    }
    req.onreadystatechange = function(){responseAHAH(pageElement);};
     var build_url=window.location.origin;
      var url = "aj_scripts/"+url;
     if(build_url=="http://localhost:8080"){        
        url=build_url+"/pitd_outer/pitd/"+url;
     }
    // Check request status
    if(method=='POST'){
        req.open("POST",url,true);
      // adds  a header to tell the PHP script to recognize the data as is sent via POST
      req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      var the_data="";
    
      ///
      var the_form=document.getElementById(form_name);
     //alert(form_name);
    for (var i=0;i<the_form.length;i++){
          var the_type = the_form.elements[i].type;
          var value;
          if(the_type !="button"){
              if(the_type =="checkbox"){
                    value = the_form.elements[i].checked
                    var id= the_form.elements[i].id;     
                    the_data+=id;
                    the_data+="="+value+"&";
              }else if(the_form.elements[i].hasAttribute('multiple') == true){
                  var test_data = "";
                  var the_multiples = the_form.elements[i].options;
                  if((the_form.elements[i].hasAttribute('getall')==true)&&(the_form.elements[i].getAttribute('getall')=="get_all")){
                      //a multiple select that we need to get all values from and not just those that are selected
                      alert("hi");
                      console.log("inside the_form_elements has attributes");                   
                    for(var j=0;j<the_multiples.length;j++){
                      test_data +=  the_form.elements[i].id+"="+the_multiples[j].value+"&";  
                    }//end of for var j
                  }else{
                  //a select list with potentially multiple selections and only want the selected ones
                      for(var j=0;j<the_multiples.length;j++){
                          if(the_multiples[j].selected == true){
                          test_data +=  the_form.elements[i].id+"="+the_multiples[j].value+"&";
                          }//end of if the_multiples                          
                      }//end of for var j
                  }//end of the if the_form inner
                  test_data=test_data.substring(0,test_data.length-1);//removing the last & symbol 
                  the_data +=test_data;
                  alert(test_data);
    
              }else{
    
                    value=the_form.elements[i].value;
                    var id= the_form.elements[i].id;     
                    the_data+=id;
                    the_data+="="+value+"&";
              }//end of if the_form outer
    
    
          }     
      }      
      the_data=the_data.substring(0,the_data.length-1);//removing the last & symbol  
    
    // alert(the_data);
      req.send(the_data);       // calls the send() method with datas as parameter
    }else if(method=="GET"){
        req.open("GET",url,true);
        req.send(null);
    }
    }
    
      function responseAHAH(pageElement){   
    var output='';
    if(req.readyState == 4){
        if(req.status == 200){          
            output = req.responseText;
            document.getElementById(pageElement).innerHTML = output;            
        }
    }
    }
    
    函数callah(方法、url、页面元素、callMessage、表单名称){
    //window.location=url;
    //document.getElementById(pageElement).innerHTML=callMessage;
    试一试{
    req=新的XMLHttpRequest();/*ff*/
    }
    捕获(e){
    试一试{
    req=newActiveObject(“Msxml2.XMLHTTP”);/*一些ie*/
    }
    捕获(e){
    试一试{
    req=新的ActiveXObject(“Microsoft.XMLHTTP”);/*其他ie*/
    }
    捕获(e){
    req=假;
    }
    }
    }
    req.onreadystatechange=函数(){responseAAH(pageElement);};
    var build_url=window.location.origin;
    var url=“aj_脚本/”+url;
    如果(构建url==”http://localhost:8080"){        
    url=build_url+“/pitd_outer/pitd/”+url;
    }
    //检查请求状态
    if(方法=='POST'){
    请求打开(“POST”,url,true);
    //添加一个标头,告诉PHP脚本识别通过POST发送的数据
    请求setRequestHeader(“内容类型”、“应用程序/x-www-form-urlencoded”);
    var_data=“”;
    ///
    var the_form=document.getElementById(form_name);
    //警报(表格名称);
    对于(var i=0;i
    
    my_array[]=1$my_array[]=2 etc
    
      function callAHAH(method,url, pageElement, callMessage,form_name){
      //window.location = url;
    
    //document.getElementById(pageElement).innerHTML = callMessage;
    try{
        req = new XMLHttpRequest(); /* ff */
    }
    catch(e){
        try{
            req = new ActiveObject("Msxml2.XMLHTTP"); /* some ie */
        }
        catch(e){
            try{
                req = new ActiveXObject("Microsoft.XMLHTTP"); /*other ie */
            }
            catch(e){
                req = false;
            }
        }
    }
    req.onreadystatechange = function(){responseAHAH(pageElement);};
     var build_url=window.location.origin;
      var url = "aj_scripts/"+url;
     if(build_url=="http://localhost:8080"){        
        url=build_url+"/pitd_outer/pitd/"+url;
     }
    // Check request status
    if(method=='POST'){
        req.open("POST",url,true);
      // adds  a header to tell the PHP script to recognize the data as is sent via POST
      req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      var the_data="";
    
      ///
      var the_form=document.getElementById(form_name);
     //alert(form_name);
    for (var i=0;i<the_form.length;i++){
          var the_type = the_form.elements[i].type;
          var value;
          if(the_type !="button"){
              if(the_type =="checkbox"){
                    value = the_form.elements[i].checked
                    var id= the_form.elements[i].id;     
                    the_data+=id;
                    the_data+="="+value+"&";
              }else if(the_form.elements[i].hasAttribute('multiple') == true){
                  var test_data = "";
                  var the_multiples = the_form.elements[i].options;
                  if((the_form.elements[i].hasAttribute('getall')==true)&&(the_form.elements[i].getAttribute('getall')=="get_all")){
                      //a multiple select that we need to get all values from and not just those that are selected
                      alert("hi");
                      console.log("inside the_form_elements has attributes");                   
                    for(var j=0;j<the_multiples.length;j++){
                      test_data +=  the_form.elements[i].id+"="+the_multiples[j].value+"&";  
                    }//end of for var j
                  }else{
                  //a select list with potentially multiple selections and only want the selected ones
                      for(var j=0;j<the_multiples.length;j++){
                          if(the_multiples[j].selected == true){
                          test_data +=  the_form.elements[i].id+"="+the_multiples[j].value+"&";
                          }//end of if the_multiples                          
                      }//end of for var j
                  }//end of the if the_form inner
                  test_data=test_data.substring(0,test_data.length-1);//removing the last & symbol 
                  the_data +=test_data;
                  alert(test_data);
    
              }else{
    
                    value=the_form.elements[i].value;
                    var id= the_form.elements[i].id;     
                    the_data+=id;
                    the_data+="="+value+"&";
              }//end of if the_form outer
    
    
          }     
      }      
      the_data=the_data.substring(0,the_data.length-1);//removing the last & symbol  
    
    // alert(the_data);
      req.send(the_data);       // calls the send() method with datas as parameter
    }else if(method=="GET"){
        req.open("GET",url,true);
        req.send(null);
    }
    }
    
      function responseAHAH(pageElement){   
    var output='';
    if(req.readyState == 4){
        if(req.status == 200){          
            output = req.responseText;
            document.getElementById(pageElement).innerHTML = output;            
        }
    }
    }
    
      if(the_type !="button"){
              if(the_type =="checkbox"){
                    value = the_form.elements[i].checked
                    var id= the_form.elements[i].id;     
                    the_data+=id;
                    the_data+="="+value+"&";
              }else if(the_form.elements[i].hasAttribute('multiple') == true){
                  var test_data = "";
                  var the_multiples = the_form.elements[i].options;
                  if((the_form.elements[i].hasAttribute('getall')==true)&&(the_form.elements[i].getAttribute('getall')=="get_all")){
                      //a multiple select that we need to get all values from and not just those that are selected
                      alert("hi");
                      console.log("inside the_form_elements has attributes");                   
                    for(var j=0;j<the_multiples.length;j++){
                      test_data +=  the_form.elements[i].id+"="+the_multiples[j].value+"&";  
                    }//end of for var j
                  }else{
                  //a select list with potentially multiple selections and only want the selected ones
                      for(var j=0;j<the_multiples.length;j++){
                          if(the_multiples[j].selected == true){
                          test_data +=  the_form.elements[i].id+"="+the_multiples[j].value+"&";
                          }//end of if the_multiples                          
                      }//end of for var j
                  }//end of the if the_form inner
                  test_data=test_data.substring(0,test_data.length-1);//removing the last & symbol 
                  the_data +=test_data;
                  alert(test_data);
    
              }else{
    
                    value=the_form.elements[i].value;
                    var id= the_form.elements[i].id;     
                    the_data+=id;
                    the_data+="="+value+"&";
              }//end of if the_form outer