2016-10-23 6 views
1

Ich poste mehrere Kontrollkästchen Werte über Ajax zu einer PHP-Datei, die die Daten verarbeitet verarbeitet und aktualisiert eine Datenbank. Der Post funktioniert genauso wie die Datenbankaktualisierungen basierend auf den gesendeten Werten der Checkbox.Ajax Beitrag nicht zurück zu Seite, wo Beitrag gesendet wurde von

Das Problem, das ich habe, ist, dass es nicht in die aufrufende php-Datei zurückkehrt, wo der Ajax-Aufruf von gemacht wird. Ich muss auf die vorherige Schaltfläche im Browser klicken und die Browserseite aktualisieren, um die Ergebnisse der aktualisierten Datenbank anzuzeigen.

Der Code für die Kontrollkästchen.

echo "<form id='assign' method ='post' action='../../assign_engineer_post_code.php'>"; 
echo "<input type='checkbox' checked name='select-all' id='select_all' />Select All<br/><br/>"; 
echo "<p style='font-size: 10px; '>"; 
while($row = mysqli_fetch_assoc($res)){ 
    echo "<input type='checkbox' class='checkbox' name='engineers[]' value='".$row['Engineer_id']."' checked><label for='" .$row['Engineer'] ."'>" .$row['Engineer'] ."</label>"; 

     echo "&nbsp;&nbsp;&nbsp;"; 
     $counter++; 
     if ($counter == 8){ 
     //echo "<br/>"; 
     } 
} 
echo "</p>"; 
?> 
<table><tr> 
<td> 
<button type="button" onclick="clear_sap_data()">Clear Data</button> 
</td> 
<td> 
<button type="button" onclick="import_sap_data()">Import SAP Data</button> 
</td> 
<td> 
<!-- <input name="confirm" type="button" value="Assign Engineers" onclick="doit();" /> 
<input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /> --> 
<input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /> 
</td> 

</tr> 
</table> 
</form> 

Das Skript namens submitForm ist wie folgt

<script> 
function submitForm() { 
var form = document.assign; 

var dataString = $(form).serialize(); 


$.ajax({ 
    contentType: false, 
    processData: false 
    type:'POST', 
    url:'../../assign_engineer_post_code.php', 
    data: dataString, 
    success: function(data){ 
     window.location.reload(); // This is not jQuery but simple plain ol' JS 

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

Die PHP-Datei mit dem Namen tut, was soll ist tun, aber es kehrt nicht zu der anrufenden Seite und der Ajax window.location.reload () wird nicht aufgerufen.

Grüße

Alan

+2

Sobald Ajax beendet wird neu geladen werden, warum versuchen Sie, die Seite neu zu laden? Was ist der Sinn der Verwendung von Ajax statt einfacher Formularübergabe? –

+1

Irgendwelche Fehler in der Konsole? auch statt 'url: '../../ assign_engineer_post_code.php',' geben Sie den vollständigen Pfad der Datei dort an.dies: - '.../... /' ist vom Ajax dort nicht verständlich. Auch warum Seite aktualisieren, wenn Sie AJAX verwenden. Wenn ja, dann übermittle das normale Formular. Warum so viel Komplikation? –

+0

Hallo Kinshuk, der Grund, warum ich die Seite aktualisieren muss, ist, dass es ein phpgrid (phpgrid.com) auf meiner Seite gibt und die php-Datei namens updates die Datenbank, mit der das Grid verknüpft ist. Also muss ich die PHP-Datei aufrufen, aktualisieren Sie die Datenbanktabelle und ich brauche die aufrufende Seite aktualisiert werden. Grüße Alan –

Antwort

0
$(document).ready(function() { 
    function reload() { 
    $("#content").load("notification.php"); 
    } 
    setTimeOut(reload, seconds*1000) 
} 

Verwendung dieser der Seite

success: function(data){ 
    if(data.success == true){ // if true (1) 
     setTimeout(function(){// wait for 5 secs(2) 
      location.reload(); // then reload the page.(3) 
     }, 5000); 
    } 
}