Witam,
W jaki sposób złapać wartość z inputa 'w locie' podczas działania skryptu ajax?
Poniżej podaję kod- do bazy danych zamiast wartości wprowadzonej przez usera przesyłany jest pusty string.
index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax-test</title>
</head>
<body>
<div class="test">tu kiedys będzie Jason</div>
<form id="form">
<input type="text" id="jsontext">
<button class="yes" type="submit">Let's go</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script src="skrypt.js"></script>
</body>
</html>
skrypt.js
$(function() {
var jstext;
$("#form").submit(function() {
jstext = $('#jsontext').val();
$(this).css('color', 'red');
return false;
});
$.ajax({
type: "POST",
url: "connect.php",
dataType : 'json',
data: {
name: jstext
},
success: function(msg) {
$('.test').html(msg[0]+'<br>'+msg[1]+'<br>'+msg[2]+'<br>');
},
complete: function() {
//niczo
},
error: function() {
console.log( "Błąd połączenia");
}
});
return false;
});
connect.php:
<?php
$dbhost = 'localhost';
$dbroot = 'root';
$dbpass = '';
$dbname = 'testowa';
$conn= new mysqli($dbhost, $dbroot, $dbpass, $dbname);
if ($conn->connect_error) die($conn->connect_error);
//ajax
$resultq = array();
$sVar1 = $_POST['name'];
$q="INSERT INTO ajax VALUES (NULL, '$sVar1')";
$result=$conn->query($q);
$q="SELECT * FROM ajax ORDER BY id DESC";
$result=$conn->query($q);
$rows=$result->num_rows;
for ($i=0;$i<$rows;$i++) {
$result->data_seek($i);
$row = $result->fetch_array(MYSQLI_NUM);
$resultq[$i] = $row[1];
}
echo json_encode($resultq);
$conn->close();
?>