【问题标题】:Ajax send data and take values from databaseAjax 发送数据并从数据库中获取值
【发布时间】:2017-12-06 13:28:45
【问题描述】:

我想:

  1. 使用ajax将index.php文件中的数据发送到php

  2. 然后根据它在数据库中找到合适的值

  3. 并将返回值发送到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 攻击。您应该通过mysqliPDO 驱动程序使用带有绑定参数的预处理语句。 This post 有一些很好的例子。
  • 是的,我当然会这样做。对我来说最重要的是从数据库中获取匹配值。我只为我做,我正在使用 localhost。
  • “我真的不知道该怎么做”。这不是一个可接受的问题陈述。您具体遇到了什么问题?您发布了代码,但没有解释您认为它有什么问题。你说了你想要发生的事情,但没有说实际上正在发生什么。你做了什么调试?您是否正在检查您的 Javascript 控制台是否有错误?您是否正在检查您的网络选项卡以查看您的请求的响应?
  • @Lawrence Cherone 你知道我应该写什么而不是 $val1 来获取这个值吗?
  • 如果没有找到匹配的值echo json_encode(array( "longitude" =&gt; $cal2 )); 不会返回任何东西,实际上很可能会抛出错误。 ajax 回调函数需要处理响应而不是仅仅弹出一个警报

标签: javascript php html mysql ajax


【解决方案1】:

将返回值发送到 index.php 并放入“经度”输入中。

如果一切顺利,试试这个

$(function () {

$('form').on('submit', function (e) {
  e.preventDefault();
  $.ajax({
    type: 'post',
    url: 'http://localhost/inne/phonegap_test/agregar.php',
    data: $('form').serialize(),

    //dont forget set return back 
    success: function ( e) {

      //parse the data from json
      var data = JSON.parse(e);

      //set into longitude input
      $('#longitude').val(data.longitude);

      alert('form was submitted');
    }
  });
});

});

和你的 php 代码

if ($result2->num_rows > 0) {
   $row2 = $result2->fetch_assoc();
   $cal2 = $row2["longitude"];
}
else{
   $cal2 = "Nie znalazło miasta";
 } 
return json_encode(array( "longitude" => $cal2 ));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 2020-09-22
    • 1970-01-01
    • 2012-12-14
    • 2013-09-11
    相关资源
    最近更新 更多