【发布时间】:2017-12-06 13:28:45
【问题描述】:
我想:
使用ajax将index.php文件中的数据发送到php
然后根据它在数据库中找到合适的值
并将返回值发送到index.php并放入“经度”输入中。
我真的不知道该怎么做。
例如:我在输入“bar”中写“lala”,然后单击“提交”按钮,然后在Nombre = "lala"的数据库中找到“经度”,最后出现在“经度”输入中。
index.php:
<form id="foo">
<label for="bar">A bar</label>
<input id="bar" name="bar" type="text" value="" />
<input type="submit" value="Send" />
</form>
<input id="longitude" name="longitude" type="text" value="" />
index.js(发送值)然后取数据(经度)并放入经度:
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'http://localhost/inne/phonegap_test/agregar.php',
data: $('form').serialize(),
success: function () {
alert('form was submitted');
}
});
});
});
agregar.php:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "inzynierka_test2";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$val1 = $_POST['bar'];
$sql2 = "SELECT `longitude` FROM `lugar` WHERE `Nombre`= $val1 ORDER BY `ID` DESC LIMIT 1";
$result2 = $conn->query($sql2);
if ($result2->num_rows > 0) {
$row2 = $result2->fetch_assoc();
$cal2 = $row2["longitude"];
}
else{
echo "Nie znalazło miasta";
}
echo json_encode(array( "longitude" => $cal2 ));
【问题讨论】:
-
您的代码容易受到SQL injection 攻击。您应该通过mysqli 或PDO 驱动程序使用带有绑定参数的预处理语句。 This post 有一些很好的例子。
-
是的,我当然会这样做。对我来说最重要的是从数据库中获取匹配值。我只为我做,我正在使用 localhost。
-
“我真的不知道该怎么做”。这不是一个可接受的问题陈述。您具体遇到了什么问题?您发布了代码,但没有解释您认为它有什么问题。你说了你想要发生的事情,但没有说实际上正在发生什么。你做了什么调试?您是否正在检查您的 Javascript 控制台是否有错误?您是否正在检查您的网络选项卡以查看您的请求的响应?
-
@Lawrence Cherone 你知道我应该写什么而不是 $val1 来获取这个值吗?
-
如果没有找到匹配的值
echo json_encode(array( "longitude" => $cal2 ));不会返回任何东西,实际上很可能会抛出错误。 ajax 回调函数需要处理响应而不是仅仅弹出一个警报
标签: javascript php html mysql ajax