2017-08-21 2 views
0

Ich möchte ein Eingabe-Typ-Element auf eine PHP-Seite ohne Formularübermittlung senden, nur mit Javascript. Ich habe versucht mit $ .ajax aber keine Möglichkeit. Ich weiß nicht, ob es eine Syntax oder ein logischer Fehler ist. Jemand hat mir gesagt, ich solle eine einzige PHP-Seite statt zwei machen.Senden von Daten an PHP-Popup-Seite

HTML-Seite: (aber .php)

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Bootstrap Example</title> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    <script src="../../js/jquery-3.2.0.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
    <style> 
     #prova{ 
      padding-right: 1%; 
      padding-top: 1%; 
     } 
    </style> 
    <script> 
function ajax_post(apri){ 
    var stile = "top=10, left=10, width=650, height=600, status=no, menubar=no, toolbar=no scrollbars=no"; 
    // Create our XMLHttpRequest object 
    var hr = new XMLHttpRequest(); 
    // Create some variables we need to send to our PHP file 
    var url = "sperem.php"; 
    var fn = document.getElementById("id_buyers").value; 
    alert(fn); 
    var vars = "postid="+fn; 
    alert(vars); 
    hr.open("POST", url, true); 
    // Set content type header information for sending url encoded variables in the request 
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    // Access the onreadystatechange event for the XMLHttpRequest object 
    hr.onreadystatechange = function() { 
     if(hr.readyState == 4 && hr.status == 200) { 
      var return_data = hr.responseText; 
      document.getElementById("status").innerHTML = return_data; 
     } 
    } 
    // Send the data to PHP now... and wait for response to update the status div 
    hr.send(vars); // Actually execute the request 
    /*window.open(apri, "", stile);*/ 
    document.getElementById("status").innerHTML = "processing..."; 
} 
</script> 

</head> 
<body> 
    <div class="container"> 
     <center><h1>Add Orders:</h1></center> 
     <form class="form-inline" name="ordine"> 
      <div class="form-group" id="prova"> 
       <label for="Buyers">ID_Buyers:</label> 
       <input type="text" class="form-control" placeholder="Enter IDBUYERS" id="id_buyers"> 
      </div> 

      <div class="form-group" id="prova"> 
       <input type="submit" id="bottone" value="show" onClick="ajax_post('sperem.php')"/> 
      </div> 

     </form> 
     <br><div id="status"></div> 

    </div> 
</body> 
</html> 

Dies ist die Php Seite:

<?php 
    $dato = $_POST['postid']; 
    echo($dato); 
?> 
+0

Was sagt Ihre Konsole? Überprüfen Sie auch die Registerkarte Netzwerk – Akintunde007

+0

Ändern Sie den Typ auf Ihrer Schaltfläche auf – Akintunde007

+0

Sie sollten überprüfen Sie Ihre Netzwerkregisterkarte wie in einem anderen Kommentar angegeben, und sagen Sie uns, was ist der Status und die Antwort der Ajax-Anfrage. (was du in 'sperem.php' zurückmachst, wird in der Antwort sein, du lädst keine neue Seite) – Kaddath

Antwort

1

Änderung dieser von

input type="submit" 

zu

input type="button" 

dann können Sie die Daten erhalten, was Sie in der Textbox angegeben haben.

Das Problem hier ist das Formular wird gesendet, wenn Sie es auf dem Browser ausführen, als ob Sie den Ajax ausführen möchten, müssen Sie die Seite mit dem Senden/Neuladen ausführen.

Ich hoffe, es hilft Ihnen.

+0

nein, ich kann nicht immer noch die Daten in der PHP ..... –

+0

haben Sie einen Fehler oder eine Nachricht, die Sie in der Konsole sehen können.Ich kopierte den gesamten Code und änderte nur die Taste es funktioniert für mich – shaan

+0

eine Sache schreiben Sie diese Zeile in Ihre PHP-Datei: echo "

";print_r($_REQUEST);echo "
"; und halte eine Warnmeldung unterhalb dieser Zeile 'var return_data = hr.responseText;' Warnung (return_data); Sehen Sie, was Sie bekommen werden – shaan