2012-03-24 2 views
0

Ich habe Formular und ich möchte Werte von ihm mit Ajax zu PHP-Skript senden, aber es sendet keinen Wert von Chceckbox, wenn es überprüft wird und nicht senden Datei mit Avatar. Formulare senden also nur Werte aus Texteingaben, aber nicht aus Checkbox und Datei. Kannst du mir bitte helfen, was ist falsch? Form:Wie Wert der Checkbox und Datei aus dem Formular mit Ajax senden

<form action='' id='form1' method='post' name='form1' ENCTYPE='multipart/form-data'> 
<input type='text' name='name' id='name' value=''> 
<input type='text' name='age' id='age' value=''> 
<input type='text' name='hobby' id='age' hobby=''> 
<input type="checkbox" name="chkPHP" id="chkPHP" value="checked"> 
<input type='file' name='avatar' id='avatar' value='insert avatar' SIZE='30' accept=''> 
<input type='submit' name='submit' id='submit' value='submit'> 
</form> 

Script Werte von Form zu senden:

<script src="jquery.js" type="text/javascript" charset="utf-8"></script> 
<script> 
$(document).ready(function(){ 
    $('#submit').click(function() { 

     $('#waiting').show(0); 
     $('#form1'); 
     $('#error').hide(0); 

     $.ajax({ 
      type : 'POST', 
      url : 'pksZpacuj.php', 
      dataType : 'json', 
      data: { 
       name: $('#name').val(), 
       age: $('#age').val(), 
       hobby: $('#hobby').val(), 
       chkPHP: $('#chkPHP').val(), 
       avatar: $('#avatar').val() 
      }, 
      success : function(data){ 
       $('#waiting').hide(0); 
       $('#error').removeClass().addClass((data.error === true) ? 'error' : 'success') 
        .html(data.msg).show(0); 
       if (data.error === true) 
        $('#form1'); 
      }, 
      error : function(XMLHttpRequest, textStatus, errorThrown) { 
       $('#waiting').hide(0); 
       $('#error').removeClass().addClass('error') 
        .text('There was an error.').show(0); 
       $('#form1'); 
      } 
     }); 

     return false; 
    }); 
}); 
</script> 

Antwort

1

In Ihrem Ajax-Aufruf, kann es einfacher sein, nur data: $('#form1').serialize() separat statt jeden Wert zu senden.

FYI die Datei, die Sie senden, wird in der $_FILES Array sein, nicht die $_POST in Ihrem PHP-Skript.

+0

Dank für die Post, es gelöst Problem mit Kontrollkästchen. :) Datei ist in $ _FILES-Array und funktioniert immer noch nicht. Aber vielleicht löse dieses Problem mit der Dateiverbindung von Chevi. –

Verwandte Themen