0

我今天刚开始学习 JQuery,由于某种原因,我无法在提交表单时让这个简单的 $.post 工作。

我想将 2 的值作为星号传递给我的 PHP 页面“update_item.php”。

我添加了一个警报,并看到当我单击提交时它会给我警报,但由于某种原因,2 的值不会传递到 php 页面。

这是我对 JQuery 的看法:

$('#form_edit_item').submit(

    function(){     
        alert("submitting");     
        $.post(
        "edititem.php",
            {star: "2"}, 
        );
    }); 

这是我在 update_item.php 中的内容:

$star = $_POST['star'];
echo "Star value: " .$star. "";

我究竟做错了什么?非常感谢您的帮助!谢谢!

4

4 回答 4

0
$.post(url, data, callback, "json");

http://docs.jquery.com/Ajax/jQuery.post

于 2013-04-11T11:06:45.643 回答
0

您可以使用此代码,

  <form action="../handler/AjaxHelper.php" method="POST">

  </form>

 $(document).ready(function() {

            $('form').submit(function() {

                $.ajax({
                    type: this.method,
                    url: this.action,
                    data: $(this).serialize(),
                    success: function(data)
                    {
                        var result = $.parseJSON(data);
                        if (result["messageCode"] == 'success')
                        {
                            alert(result["message"]);
                        }
                        else
                        {
                            alert(result["message"])
                        }
                    },
                    error: function()
                    {
                        alert("Please Try Again");
                    }                        
                });
                return false;
            });
        }); 

AjaxHelper.php 中

$objLoginHelper = new LoginHelper();
$objLoginHelper = unserialize($_SESSION["LoginInformation"]);
$postDate = date("Y-m-d H:i:s", strtotime($_POST['txtTopicDate']));
$dataTopics = array($_POST['txtTopicSubject'], $postDate, $_POST['ddlCategories'], $objLoginHelper->getUserLoginId());

$result = array();

try {
    $rp = new Repository();
    $rp->SaveForumTopics($dataTopics);
    $result["messageCode"] = "success";
    $result["message"] = "Category Save Successfully";
} catch (Exception $ex) {
    $result["messageCode"] = "error";
    $result["message"] = $ex->getMessage();
}

echo json_encode($result);
于 2013-04-11T11:22:56.423 回答
0
$('#form_edit_item').submit(

function() {
    alert("submitting");
    $.post("update_item.php", {
        star : "2"
    });
});

去掉后面的逗号{star : "2"}。尝试这个。

于 2013-04-11T11:12:52.480 回答
0

你可以使用ajax

        $.ajax({
            type: "POST",
            url: "update_item.php",
            data: {
                star: "2" // or 'star: $('#id').val()', or any other value
            }
        }).done(function( msg ) {
            // do it when its done or do nothing
        });

update_item.php你应该使用类似的东西

<?php $star=(isset($_POST['star']) ? $_POST['star'] : '');
echo $star; ?>

如果这不起作用,请尝试更改POST为,GET以便您可以通过 url 检查传递值 (domain.com/update_item.php?star=2)

于 2013-04-11T11:13:03.440 回答