2016-07-29 12 views
1

Ich verwende ein CRUD-System in einer Website. Ich zeige eine Tabelle mit allen vorhandenen Aufzeichnungen (avisos.php). Wenn der Benutzer klickt auf der ADD NEW RECORD-Taste, folgende Skript gestartet wird:Aufruf einer Member-Funktion prepare() bei Null bei CRUD-System

$("#btn-add").click(function(){ 
     $(".content-loader").fadeOut('slow', function() 
     { 
      $(".content-loader").fadeIn('slow'); 
      $(".content-loader").load('nuevo_aviso.php'); 
      $("#btn-add").hide(); 
      $("#btn-view").show(); 
     }); 
    }); 

nuevo_aviso.php enthält ein HTML-Formular einen neuen Datensatz hinzuzufügen. Dies ist ihr Inhalt:

<div id="dis"> 
    <!-- here message will be displayed --> 
    </div> 


    <form method='post' id='emp-SaveForm' action="#"> 

    <table class='table table-bordered'> 

     <tr> 
      <td>Titulo</td> 
      <td><input type='text' name='titulo_anuncio' class='form-control' placeholder='EX : P.M.I. DUCTO DE JUAREZ' required /></td> 
     </tr> 

     <tr> 
      <td>Texto</td> 
      <td><input type='text' name='texto_anuncio' class='form-control' placeholder='EX : Mantenimiento preventivo el dia 17 de agosto' required></td> 
     </tr> 


     <tr> 
      <td colspan="2"> 
      <button type="submit" class="btn btn-primary" name="btn-save" id="btn-save"> 
      <span class="glyphicon glyphicon-plus"></span> Guardar Aviso/Anuncio 
      </button> 
      </td> 
     </tr> 

    </table> 
</form> 

Von hier eine JS-Datei (crud.js) von avisos.php genannt sollte die Formulardaten übergeben create_aviso.php: dies die Funktion bei crud.js ist:

<?php 
require_once 'dbconfig.php'; 


    if($_POST) 
    { 
     $titulo_anuncio = $_POST['titulo_anuncio']; 
     $texto_anuncio = $_POST['texto_anuncio']; 

     try{ 

      $stmt = $db_con->prepare("INSERT INTO tbAnuncios(titulo_anuncio,texto_anuncio) VALUES(:etitulo, :etexto)"); 
      $stmt->bindParam(":etitulo", $titulo_anuncio); 
      $stmt->bindParam(":etexto", $texto_anuncio); 

      if($stmt->execute()) 
      { 
       echo "Registro añadido"; 
      } 
      else{ 
       echo "Error"; 
      } 
     } 
     catch(PDOException $e){ 
      echo $e->getMessage(); 
     } 
    } 

?> 

Das Problem besteht darin, dass der Browser in Zeile 12 von create_aviso.php wirft einen Fehler::

/* Data Insert Starts Here */ 
    $(document).on('submit', '#emp-SaveForm', function() { 

     $.post("create_aviso.php", $(this).serialize()) 
     .done(function(data){ 
      $("#dis").fadeOut(); 
      $("#dis").fadeIn('slow', function(){ 
       $("#dis").html('<div class="alert alert-info">'+data+'</div>'); 
       $("#emp-SaveForm")[0].reset(); 
      });  
     }); 
     return false; 
    }); 

und anschließend bei create_aviso.php die empfangenen Daten sollten in die Datenbank eingefügt werden

Fatal error: Aufruf an eine Elementfunktion herzustellen() auf null in /../create_aviso.php auf der Leitung 12. Diese Leitung 12 ist:

$stmt = $db_con->prepare("INSERT INTO tbAnuncios(titulo_anuncio,texto_anuncio) VALUES(:etitulo, :etexto)"); 

I die Daten überprüft und festgestellt, dass nur der Wert von $_POST['titulo_anuncio'] wird create_aviso.php gegeben. $_POST['texto_anuncio'] wird nicht empfangen. Das sollte der Grund für die Ausnahme sein, aber ich finde den Fehler im Code nicht.

+1

verwenden Ich benutze keine globalen Variablen, aber in Ihrem Fall versuchen Verwendung in Zeile 11 'global $ db_con' –

+1

Haben Sie beobachtet empfehlen die AJAX-Anfrage/Antwort in den Browser-Entwickler-Tools? Haben Sie die jQuery-Bibliothek in das Projekt aufgenommen? Werden Fehler gemeldet? Laufen Sie das auf einem Webserver? –

+1

Überprüfen Sie doppelt '$ (this) .serialize()', da das 'this' sich auf die Funktion '$ .post' bezieht. –

Antwort

1

Der Inhalt von dbconfig.php fehlt, aber ich denke, Ihr Problem ist, weil $db_con in Zeile 12 zugänglich sein muss. In Ihrem Fall kann $db_con nicht definiert werden, oder es ist in einem anderen Bereich.

Try

global $db_con; 

Entsprechend 11 von create_aviso.php

+0

danke, ich habe dbconfig.php geändert und die Verbindung zu $ ​​db_con umbenannt – mvasco

Verwandte Themen