2

我有一个表单,它通过 ajax 点击提交数据,它运行一个 php 脚本。这一点正在起作用,我想要的是当 php 运行时它返回一个成功与否的值,但它似乎失败了,我不明白为什么。

这是表格

<div id="container"></div>
<form id="availability-check" class="appnitro"  method="post"  onsubmit="return false">
  <label class="description" for="element_1">Post Code </label>
  <input id="postcode" name="postcode" type="text" maxlength="10" value="" placeholder=" e.g. WC1  1AA"/>

  <input id="check-availability" class="art-button check-availability" type="submit" name="submit" value="Submit" />
</form>

这是javascript

$(document).ready(function(){
  $("#availability-check").submit(function(){

  var getField = $("#postcode").val();
 $.ajax({
             url: '/index.php/postcodeupdate' , 

             type: 'POST',
             data: '{ postcode: getField }',

             dataType: "json",

             success: function(data){ 

               $('#container').append(data)      

             }
          });   
  });
});

这是php

<?php

if(!empty($_POST['postcode'])){

$postcode=$_POST["postcode"];

$postcode= preg_replace('/\s+/', '', $postcode);

$db = JFactory::getDBO();

$query = "SELECT * FROM rex71_postcodes WHERE postcode='". $postcode . "'";
$db->setQuery($query);
$reply = $db->query();
$rowsnum = $db->getNumRows();

if($rowsnum>0){

header('Content-Type: application/json');

echo json_encode(array('result' => '1'));

}

else{

header('Content-Type: application/json');

echo json_encode(array('result' => '0'));

}

}
?>
4

1 回答 1

4
data: '{ postcode: getField }',

这是没有意义的。你要这个:

data: { postcode: getField },

然后您将收到作为 POST 值的值,并假设您的 PHP 代码是正确的,一切都会正常工作。

哦,请阅读有关 SQL 注入的信息。现在你的代码很容易受到攻击。

于 2013-08-22T14:32:59.237 回答