2016-05-16 1 views
1

Ich arbeite an einer App mit Cordova und ich würde gerne eine Seite craete eine Seite, wo Menschen verschiedene Räume erstellen und beitreten können (in denen Menschen können verschiedene Aktionen). Aber ich habe verschiedene Tutorials ausprobiert und viel im Internet gesurft, um zu verstehen, wie man mySQL - Tabellen mit HTML - und AJAX - Anfragen an eine PHP - Datei erstellt, aber nichts scheint zu funktionieren ... Können Sie mir helfen, zu verstehen, wie man eine Tabelle aus einem erstellt HTML-Seite mit Ajax? (Sorry für mein Englisch, ich bin italienisch!)Erstellen Sie eine MySQL-Tabelle mit Ajax und HTML in Cordova App

hier ist ein Test mit einem einfachen Anmeldeformular, das nicht

index.html zu funktionieren scheint:

<html> 
<head> 
    <title>Hello World</title> 
</head> 
<body> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
    <script type="text/javascript" src="script.js"></script> 

    <form class="" name="form"> 
     username: <input type="text" id="username" type="text"> <br/> 
     email: <input type="text" id="email" type="text"> <br/> 
     full name: <input type="text" id="fullname" type="text"> <br/> 
     password: <input type="password" id="password" type="text"> <br/> 

     <input type="button" onclick="ajaxFunction()" value="send"> 

    </form> 

    <div id="ajaxDiv">YOUR RESULT WILL BE SHOWN HERE</div> 

</body> 

script.js

function ajaxFunction(){ 

    var ajaxRequest = new XMLHttpRequest(); 
    ajaxRequest.onreadystatechange = function(){ 
    if (ajaxRequest.readyState == 4) { 
     var ajaxDisplay = document.getElementById("ajaxDiv"); 
     ajaxDisplay.innerHTML = ajaxRequest.responseText; 
    } 
    } 

    var username = document.getElementById("username").value; 
    var email = document.getElementById("email").value; 
    var fullname = document.getElementById("fullname").value; 
    var password = document.getElementById("password").value; 

    var queryString = "?name=" + username; 
    queryString += "&email=" + email + "&fullname=" + fullname + "&password=" + password; 
    console.log(queryString); 
    ajaxRequest.open("GET","fetchdata.php" + queryString, true); 
    ajaxRequest.send(null); 

} 

und meine pHP-Datei:

<?php 

    $dbhost = "localhost"; 
    $dbuser = "root"; 
    $dbpassword = "root"; 
    $db = "utopy"; 

    $username = $_GET["username"]; 
    $email = $_GET["email"]; 
    $fullname = $_GET["fullname"]; 
    $password = $_GET["password"]; 

    $conn = mysqli_connect($dbhost,$dbuser,$dbpass,$db); 
    if(!$conn){ 
    die("Connection Failed: " .mysqli_connect_error()); 
    } 

    $sql = "INSERT INTO haus (username, password, full_name, email) VALUES (?s,?s,?s,?s)",$username,$email,$fullname,$password); 
    if(mysqli_query($conn,$sql)){ 
    echo "NEW RECORD CREATED"; 
    } else { 
    echo "ERROR: " .$sql. "<br>" . mysqli_error($conn); 
    } 

    mysqli_close($conn); 

?> 
+0

Devi, mettere un po di codice nella tua die folgenden JavaScript-Code verwenden, tun manda, se no la gente ti inzia sotto votare, devi far vedere quello che hai tentato di fare fin'ora –

+0

hai ragione, aggiornato la domanda con gli esempi ... sapreşti aiutarmi? –

+0

cestamente, adesso leggo il codice und ti facco sapere –

Antwort

0

Ihr PHP-Code ist völlig durcheinander, so wie Sie versuchen, die Abfrage einzufügen, wird es so nicht funktionieren.

Das erste Problem ist $dbpass sollte $dbpassword sein und das nächste Problem ist, Sie versuchen, die Vorbereitungsfunktion zu verwenden, die nicht einmal existiert.

Was Sie müssen, um die Daten zu tun entkommen Sie von den Benutzern recieving von mysqli_real_escape_string mit und setzen Sie sie dann ersetzen Sie die gesamte PHP-Code mit dem unter einem

(cancella il tuo codice e usa quello sotto) :

<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpassword = "root"; 
$db = "test"; 

$username = mysqli_real_escape_string($_GET["username"]); 
$email = mysqli_real_escape_string($_GET["email"]); 
$fullname = mysqli_real_escape_string($_GET["fullname"]); 
$password = mysqli_real_escape_string($_GET["password"]); 

$conn = mysqli_connect($dbhost,$dbuser,$dbpassword,$db); 
if(!$conn){ 
die("Connection Failed: " .mysqli_connect_error()); 
} 

$sql = "INSERT INTO haus (username, password, full_name, email) VALUES ('$username','$email','$fullname','$password')"; 
if(mysqli_query($conn,$sql)){ 
echo "NEW RECORD CREATED"; 
} else { 
echo "ERROR: " .$sql. "<br>" . mysqli_error($conn); 
} 

mysqli_close($conn); 

?> 

wenn Sie Cross-Domain-Anfrage machen wollen, dann müssen Sie

function ajaxFunction(){ 
    var ajaxRequest = new XMLHttpRequest({mozSystem: true}); 
    ajaxRequest.onreadystatechange = function(){ 
    if (ajaxRequest.readyState == 4) { 
     var ajaxDisplay = document.getElementById("ajaxDiv"); 
     ajaxDisplay.innerHTML = ajaxRequest.responseText; 
    } 
    } 

    var username = document.getElementById("username").value; 
    var email = document.getElementById("email").value; 
    var fullname = document.getElementById("fullname").value; 
    var password = document.getElementById("password").value; 

    var queryString = "?name=" + username; 
    queryString += "&email=" + email + "&fullname=" + fullname + "&password=" + password; 
    console.log(queryString); 
    ajaxRequest.open("GET","fetchdata.php" + queryString, true); 
    ajaxRequest.send(null); 

} 
+0

grazie mille, ist che ho seguito più tutorial und provato a misciare i codici dalle diverses guide! ultima domanda: se volessi tarif in modo che si connettesse ad un datenbank hostato su un dominio? –

+0

@ utopy vale stello, nicht cambia niente, il host ti hostname, benutzername, passwort und datenbank pro constetterti, è tutto uguale. se il tuo problema si è risolto, metti kommen accettato la domanda –

+0

quindí devo solo metter il datei php sul server giusto? (scusa se ti massacro achaha trovare un'italiano che aiuta su stackoverflow ist tipo natale per me!) –

Verwandte Themen