2016-04-21 9 views
0

umgeleitet, so habe ich eine Erweiterung, die ein Formular-Popup, Baltons und editierbare Felder enthält, die von meinen Javascript-Funktionen autopopulated sind und Optionen Seite. Es hat die Fähigkeit, die Formulardaten auf eine PHP-Seite 'PhpFile.php' zu senden, wenn man auf eine Schaltfläche klickt, die dann die Daten in eine Datenbank unter Verwendung einer Abfrage einfügt.Chrome Extension: Wie HTML-Formular-Daten an eine PHP-Seite beim Klicken auf Schaltfläche klicken, die auf die PHP-Seite

Ich habe auch eine andere PHP-Seite DataDisplayScript.php. Diese Seite soll bestimmte Datensätze in der Datenbank anzeigen, die bestimmte Felder im Benutzerformular wie Alter und Geschlecht entsprechen. Im Moment habe ich eine Schaltfläche auf der Chrome-Erweiterung mit einigen Javascript aufgerufen, die mich zu dieser Seite aber bis jetzt ich kann nur die Seite, um die gesamte Datentabelle geladen, wenn sie an sie weitergeleitet. Dies liegt daran, dass es keine Informationen über den Benutzer aus dem Formular enthält.

Meine Frage ist, wenn es möglich ist, wenn ich auf den Knopf auf meiner Erweiterung klicke, der mich zum DataDisplayScript umleitet, kann ich bestimmte Feldwerte vom Formular zur php Seite senden? was ich dann verwenden kann, um die Datenbank nach den übereinstimmenden Datensätzen abzufragen und sie auf der Seite anzuzeigen. (Sie brauchen nicht wirklich Hilfe bei der Abfrage, nur mit dem Senden der Daten, wenn der Benutzer auf eine Schaltfläche oder einen Link klickt).

Hier ist mein html für das Formular in Senden Benutzerinformationen DataDisplayScript.php

<form action="http://************/DataDisplayScript.php" method="POST" name="HiddenUIDPostForm"> 
     <input type = "text" id="UIDSuggestions" name="UIDSuggestions" hidden="true"> 
     <input type="text" id="Gender" name="Gender" placeholder="Your Gender"><br/> 
     <input type="text" id="Age" name="Age" placeholder="Your Age"><br/> 
     <input type = "submit" name="uidSubmit" value="Go To Suggestions"> 
    </form> 

mein Javascript Hier beteiligt ist für die Schaltfläche, die mich an die Datendisplay Skript Seite umleitet:

function ClickSuggestionsLink(data){ 
    /*if (window.XMLHttpRequest){ 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 
    xmlhttp.open("GET","DataDisplayScript.php",true); 
    xmlhttp.send(); 
    */ 
    chrome.tabs.create({url: 'http://***********/DataDisplayScript.php'}); 
} 

Hier ist meine php auf DataDisplayScript, die ID gerne die Formularinformationen gesendet

$uId = $_POST['UIDSuggestions']; 
$gender = $_POST['Gender']; 
$age = $_POST['Age']; 

Jede Hilfe würde sehr geschätzt werden!

+0

Warum haben Sie den AJAX-Teil des Javascript kommentiert. Das PHP-Skript in einem Browser Tab anzeigen wird nicht senden Daten und eine Antwort akzeptieren, müssen Sie AJAX verwenden – RiggsFolly

+0

Ich konnte es nicht funktioniert hauptsächlich und dachte ID lassen Sie es und kommen Sie zurück, wenn ich nicht eine Alternative finden, aber wenn Ajax ist der einzige Weg, dass Sie irgendwelche Probleme mit diesem auskommentierten Ajax sehen? – cknoxk9

Antwort

1

Dies sollte helfen. AJAX mit Post-Methode.

function ClickSuggestionsLink(data){ 
    var dir = 'http://***********/DataDisplayScript.php'; 
    var request = new XMLHttpRequest(); 

    var uId = document.getElementById("UIDSuggestions").value; 
    var gender = document.getElementById("Gender").value; 
    var age = document.getElementById("Age").value; 

    var data = "UIDSuggestions="+uId +"&Gender="+gender+"&Age="+age; 

    request.open("POST", dir, true); 
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    request.setRequestHeader("Content-length", data.length); 
    request.setRequestHeader("Connection", "close"); 

    request.onload = function() { 
     if (request.status === 200) { 
      // code if everything went fine 
      // request.responseText for printing echoes 
     } else { 
      // code if otherwise 
     } 
    }; 

    // sending data here 
    request.send(data); 
} 
+0

das funktionierte wie ein charm man dank !!! – cknoxk9

+0

In der Minute, in der das funktioniert, wird die Seite im Popup der Erweiterung angezeigt, aber ich hatte gehofft, dass der Button mich zur aktuellen Seite in einem neuen Tab mit den noch vorhandenen Variablen bringt. Allerdings bekomme ich einen undefinierten Index Fehler wie zuvor, als ich das Javascript für das Erstellen eines neuen Tabs und das Umleiten auf die Seite innerhalb der gleichen Funktion fügte ich Ihren Code. Irgendeine Idee, wie man das löst? – cknoxk9

+0

Ich bin mir nicht sicher, ob ich bekomme, was du verlangst. Willst du _redirect_ irgendwie nachdem der Ajax seine Arbeit getan hat? –

Verwandte Themen