【问题标题】:Form with PHP and AJAX Request带有 PHP 和 AJAX 请求的表单
【发布时间】:2013-07-04 22:38:04
【问题描述】:

我有以下简单的形式:

这是我在表单后面的代码:

<form action="javascript:void(0);" method="post">
<fieldset>
    <legend>ROOM EQUIPMENT</legend>

    <div class="inline_inputs">
        <div class="input_box">
            <input type="checkbox" name="equipment" value="computer" id="computer">
            <label for="computer">Computer</label>
        </div><!-- .input_box -->

        <div class="input_box">
            <input type="checkbox" name="equipment" value="projector" id="projector">
            <label for="projector">Projector</label>
        </div><!-- .input_box -->

        <div class="input_box">
            <input type="checkbox" name="equipment" value="whiteboard" id="whiteboard">
            <label for="whiteboard">Whiteboard</label>
        </div><!-- .input_box -->

        <div class="input_box">
            <input type="checkbox" name="equipment" value="visualiser" id="visualiser">
            <label for="visualiser">Visualiser</label>
        </div><!-- .input_box -->

        <div class="input_box">
            <input type="checkbox" name="equipment" value="desk" id="desk">
            <label for="desk">Desk</label>
        </div><!-- .input_box -->
    </div>
</fieldset>

<div class="buttons">
    <input type="submit" class="reg_button" value="GET ROOMS" />
</div><!-- .buttons -->

最后是我如何在此表单所在的同一页面上发出 AJAX 请求:

<script>
$('form').submit(function(){
    var str = $(this).serialize();
    $.ajax({
      url: "userLogic.php",
      cache: false
    }).done(function( html ) {
      $("#rooms_wrap").append(html);
    });
});

我对 PHP 还很陌生,但我在提交表单时遇到了问题。当我进行选择时,我的选择不会发送到 userLogic.php 文件。我得到一个打印输出:

抱歉,您还没有选择。

这来自位于 userLogic.php 文件中的 PHP 代码:

<?php
include("connect.php");

$items = array_key_exists('equipment', $_POST) ? $_POST['equipment'] : '';

if(!empty($items))
{
    if ($_POST["equipment"] == "computer") {
        echo "checked computer!";
    } else if($_POST["equipment"] == "projector")
    {
        echo "checked projector!";

        $sql = "SELECT room_name, day_avail, from_time, to_time, equip_name
        FROM rooms
        JOIN equipment ON (equipment.room_id = rooms.room_id)
        JOIN room_availability ON (room_availability.room_id = rooms.room_id)
        WHERE equip_name='Projector'
        GROUP BY day_avail";

        $myData = mysql_query($sql,$conn) or die(mysql_error());

    } else if($_POST["equipment"] == "whiteboard")
    {
        echo "checked whiteboard!";
    } else if($_POST["equipment"] == "visualiser")
    {
        echo "checked visualiser!";
    } else if($_POST["equipment"] == "desk")
    {
        echo "checked desk!";
    }
} else {
    echo "> Sorry, You have not made a selection.";
}
?>

【问题讨论】:

    标签: php jquery ajax forms


    【解决方案1】:

    查找$.ajax 的参数。你不是POSTing...而且你也不是POSTing 数据。

    type: "POST"

    data: str

    需要在:

    $('form').submit(function(){
        var str = $(this).serialize();
        $.ajax({
          url: "userLogic.php",
          cache: false,
          type: "POST",
          data: str
        }).done(function( html ) {
          $("#rooms_wrap").append(html);
        });
    });
    

    【讨论】:

      【解决方案2】:

      您似乎没有发布您的数据..这样做吧。

       $.ajax({
        url: "userLogic.php",
        cache: false,
        type: "POST",
        data: str,
      
        //rest of your code
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 2021-06-05
        • 2013-03-10
        相关资源
        最近更新 更多