2016-04-13 12 views
1

Ich versuche, die Daten von einem Formular an ein Einfügeskript zu übergeben, ohne die Formulardaten zu löschen. Ich benutze diese Funktion, um auf den Druckknopf zu reagieren, aber ich bekomme nichts. Es ist sogar so eingestellt, dass ein Fehler ausgegeben wird, wenn das Formular Daten enthält, aber nicht so weit. Ich kann nur annehmen, dass ich es nicht richtig nenne.Jquery .post() ruft kein Skript auf

$(function() { 
    $(".submit").click(function() { 
     var facility = $("#facility").val(); 
     var riskclient = $("#riskclient").val(); 
     var riskdate = $("#riskdate").val(); 
     var dataString = 'facitlity=' + facility + '&riskclient=' + riskclient + '&riskdate=' + riskdate; 

     if (facility == '' || riskclient == '' || riskdate == '') { 
      $('.success').fadeOut(200).hide(); 
      $('.error').fadeOut(200).show(); 
     } else { 
      $.ajax({ 
       type: "POST", 
       url: "insertriskass.php", 
       data: dataString, 
       success: function(){ 
        $('.success').fadeIn(200).show(); 
        $('.error').fadeOut(200).hide(); 
       } 
      }); 
     } 
     return false; 
    }); 
}); 
<div class="body"> 
    <div align='center'> 
     <div class="tablebackground"> 
      <form method ="post" name= "form" id="form">    
       <table border='1' > 
        <tr> 
         <td>Facility</> 
         <td><input type="text" name= "riskFacility" id="facility"></td> 
         <td rowspan='4'><input type="submit" name="submit" value="New Client" class="submit"/</td> 
        </tr> 
        <tr> 
         <td>Client</td> 
         <td><input required type="text" name="riskClientId" id="riskclient" value="<?php echo htmlspecialchars($_POST['riskClientId']); ?>"></td> 
        </tr> 
        <tr> 
         <td>Audit Date</td><td> <input required type="text" id="datepicker"  name="riskauddate" id="riskdate"></td> 
        </tr> 
       </table> 
      </form> 

Es ist vorbei auf jeden Fall das Einfügen Skript nichts. Also nochmal, ich denke ich nenne es falsch.

+0

brauchen Sie ein document.ready dort – Mihai

+1

haben Sie die Konsole überprüft. Ajax ausgelöst oder nicht? –

+0

lädt Ihre Seite neu? –

Antwort

0

Ich sehe Ihre HTML-Tags sind nicht richtig geschlossen

<div class="body"> 

<form method="post" name="form" id="form"> 

    <table border='1'> 
     <tr> 
     <td>Facility</td> 
     <td> 
      <input type="text" name="riskFacility" id="facility"> 
     </td> 
     <td rowspan='4'> 
      <input type="submit" name="submit" value="New Client" class="submit" /> </td> 
     </tr> 
     <tr> 
     <td>Client</td> 
     <td> 
      <input required type="text" name="riskClientId" id="riskclient" value=""> 
     </td> 
     </tr> 
     <tr> 
     <td>Audit Date</td> 
     <td> 
      <input required type="text" id="datepicker" name="riskauddate" id="riskdate"> 
     </td> 
     </tr> 

    </table> 
    </form> 

und überprüfen, ob es einen Rückruf auf Fehler kommt

+0

Das Ereignis scheint zu feuern, wie ich POST verwenden und seinen Inhalt auf derselben Seite ausdrucken kann, aber es wird nur an das Einfügeskript übergeben –

+0

Nicht bestanden Ich sollte gesagt haben. Gibt es etwas, das ich auf das genannte Skript setzen sollte, das ich vermisse? –

0

Ich denke, es nützlich ist ..

$(document).ready(function() { 
$('#submit').on('click', function (event) { 
    event.preventDefault(); 
    var facility = $("#facility").val(); 
var riskclient = $("#riskclient").val(); 
var riskdate = $("#riskdate").val(); 

var dataString = 'facitlity='+ facility + '&riskclient=' + riskclient + '&riskdate=' + riskdate; 
or 
// var datastring = $("#form").serialize(); 

if(facility=='' || riskclient=='' || riskdate=='') 
{ 
$('.success').fadeOut(200).hide(); 
$('.error').fadeOut(200).show(); 
} 
else 
{ 
$.ajax({ 
type: "POST", 
url: "insertriskass.php", 
data: dataString, 
success: function (msg) { 
$('.success').fadeIn(200).show(); 
$('.error').fadeOut(200).hide(); 
} 
}); 
} 
return false; 
}); 
}) 

event.preventDefault wird verwendet, um das Senden von Dateien und Seiten zu stoppen. datastring = $ ("# form"). Serialize(); verwendet, um alle Datenwerte zu übermitteln, so dass nicht jeder Variablenwert zugewiesen werden muss.

0

Sie können den Code so umgestalten, Ihre HTML-Tags überarbeiten. Sie haben eine doppelte ID-Eigenschaft in einer Eingabe und fehlende Clousure-Tags.

$(document).ready(function() { 
    $(".submit").click(function(event) { 
     event.PreventDefault(); 
     var facility = $("#facility").val(); 
     var riskclient = $("#riskclient").val(); 
     var riskdate = $("#riskdate").val(); 
     var dataString = 'facitlity=' + facility + '&riskclient=' + riskclient + '&riskdate=' + riskdate; 

     if (!facility || !riskclient || !riskdate) { 
      $('.success').fadeOut(200).hide(); 
      $('.error').fadeOut(200).show(); 
     } else { 
      //send ajax post 
     } 
    }); 
});