【发布时间】:2015-12-14 01:43:31
【问题描述】:
有一个表单,用户输入一个数字,然后根据应用在数字上的条件,显示一个地址列表。我想存储通过 AJAX 返回的数据。页面上有表单的代码:
index.php
<script>
$(document).ready(function() {
$("#phone").keyup(function() {
var number = $("#phone").val();
$.ajax({
url: "t_fetchaddr.php",
type: 'POST',
data: 'number='+number,
cache: false,
}).done(function(html) {
$('#results').html(html);
});
});
});
<script>
<form action="insert_temp.php" method="POST">
<input type="text" name="phoneno" id="phone" value="" />
<div id="results"></div>
<button class="button btn btn-primary btn-large" type="submit" name="submit" value="submit">Submit</button>
</form>
t_fetchaddr.php 页面上的代码
$val = $_REQUEST['number'];
$sql2 = "SELECT * FROM user_address where number='".$val."' ";
$result2 = mysqli_query($con, $sql2);
if (mysqli_num_rows($result2) > 0)
{ ?>
<div class="span6" >
<div class="span3">
<? while($row2 = mysqli_fetch_assoc($result2))
{ ?>
<input type="radio" name="old_address" value="<? echo $row2['address']; ?>" ><? echo $row2['address']; ?><br>
<? } ?>
</div>
</div>
<? } ?>
insert_temp.php 页面上的代码
$old_address = mysqli_real_escape_string($con, $_POST['old_address']);
echo $old_address;
在通过数字显示地址之前一切正常,但是当我提交表单时它不会进入后端。我尝试echo $old_address,但一无所获。
表单内索引页面中的其他输入值将被后端但是value that is being fetched from t_fetchaddr.php page is not getting carried,谁能告诉我哪里出错了
【问题讨论】:
-
我看到的第一个错误是
data: 'number='+number,应该是data: {number:number}, -
@BasvanStein 这不是问题;发送字符串很好 - 无论如何,对象都会被 jQuery 转换为查询字符串。
-
您是否检查了控制台以查看请求是否正在发送?
-
@Rory McCrossan 值被发送到 ajax,从那里我得到了正确的响应,但是在单击提交按钮后我没有得到任何响应,但是如果我使用任何其他输入文本直接放在主页面,被带到insert_temp.php页面
-
谢谢@Rory McCrossan,我不知道,虽然我仍然觉得它很丑。
标签: php jquery mysql ajax forms