php - jQuery AJAX 表单不发布结果

标签 php jquery mysql ajax database

我在使用 AJAX 从数据库返回结果时遇到问题。我尝试回显 $diskspace$price,两者都返回未定义。

index.php

<form id="form" method="POST">
    Diskspace:
    <select id="Diskspace">
        <option value="0 AND 1">$0 - 1GB</option>
        <option value="1 AND 5">$1 - 5GB</option>
        <option value="5 AND 10">$5 - 10GB</option>     
    </select></br></br> 
    Price:
    <select id="Price">
        <option value="0 AND 5">$0 - $5</option>
        <option value="1 AND 5">$5 - $10</option>
        <option value="10 AND 20">$10 - $20</option>
        <option value="20 AND 40">$20 - $40</option>
        <option value="40 and 500">>$40</option>            
    </select></br></br> 
    <input type="submit" id="submit" value="enter">
</form> 
<div id="output"></div>

JS

$(document).ready(function(){

    $("div#output").hide();
    $("#submit").click(function(){
        $.post('join.php', {
            diskspace: $("#diskspace").val(),
            price: $("#price").val() 
        },
        function(data){
            $("div#output").html(data); 
            $("div#output").show();     
        }
        );
        return false;
    });     
});
</script>

join.php

<?php
if (isset($_POST['diskspace'])){
mysql_connect("localhost","root","") or die('Could not connect');
mysql_select_db("webhost") or die ('Could not find DB');

$diskspace = $_POST['diskspace'];
$price =$_POST['price'];

$query =  mysql_query("
    SELECT * FROM data WHERE Diskspace BETWEEN $diskspace
    AND Price BETWEEN $price 
");

$count = mysql_num_rows($query);

if ($count == 0){
        $output = "No such results, sorry.";
    }else{
        while($row = mysql_fetch_array($query)){
            $diskspace = $row['Diskspace'];
            $price = $row['Price'];
            $host = $row['Provider'];
            $output .= '<div>'.$host.'  '.$diskspace.'  '.$price.'</div>'; 
        }
}
echo $output;
}
?>

最佳答案

您的 HTML 元素的 ID 为 Diskspace,并且您正在查找 diskspace 元素。

以下面为例:

<select id="Diskspace">
    <option value="hello">hello</option>
</select>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    console.log( $('#diskspace').val() );
});
</script>

结果是未定义的,在新版本的 jQuery 中,如果找不到该元素,则不会通过 ajax/post 传递变量。

这同样适用于您的 Price 元素。

关于php - jQuery AJAX 表单不发布结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907467/

相关文章:

undefined variable 的javascript错误

c# - ASP.Net 从 jQuery 选择后上传多个文件

javascript - 如何向我的网站添加循环样式的重复图像相位背景?

php - 最后一行的格式不正确

mysql - 如何选择两个不同表字段的乘积和指定其他两个字段的值?

php - 垂直和水平对齐字段集中的文本

php - 这是一个更快的功能

php - 强制通过 header 缓存动态生成的 JS/CSS 文件不适用于所有浏览器

MySQL 子查询与 LIMIT 替代方案

php - 在 PHP 中路由 URL