ajax调用给出了jquery错误

时间:2014-04-25 11:48:07

标签: javascript php jquery ajax

对于学校我正在尝试使用Jquerys ajax函数将表单中的数据导入数据库。困难的部分是我根据数据库中的数据量动态地输入。因此,我真的不知道如何以一种好的方式获取这些数据,我尝试了一些东西(如下所示),但这给了我这个错误:

未捕获的TypeError:无法读取未定义的jquery-1.9.1.js的属性'toLowerCase:2208

我希望有人可以帮助我,

提前致谢,

贾斯汀

代码:

$(document).ready(init);
console.log("document readyed");

function init() {
    console.log("started init");
    ajaxcall();
    $("#wedstrijden").submit(function (event) {
        console.log("e.preventdefault");
        event.preventDefault();
        submitHandler();
    });
}

function ajaxcall() {
    console.log("i'am getting the games");
    $.ajax({
        dataType: "json",
        url: 'libs/php/function.php',
        success: getAllWedstijdenCallback
    })
}

function submitHandler() {
    console.log("submithandler started");
    $inputVoorValue = $('.voor').val();
    $inputVoorValues = $(this.$inputVoorValue);
    $inputTegenValue = $('.tegen').val();
    $inputTegenValues = $(this.$inputTegenValue);
    $idValue = $('wedstijdId').val();
    $idValues = $(this.$idValue);
    console.log($inputVoorValue);
    console.log($inputTegenValue);
    updateAjaxCall($idValues, $inputTegenValues, $inputVoorValues)
}
function updateAjaxCall($idValue, $inputTegenValue, $inputVoorValue) {
    console.log("i'm updating");
    $.ajax({
        dataType: "json",
        url: 'libs/php/function.php',
        data: {id: $idValue, thuisPoint: $inputVoorValue, uitPoint: $inputTegenValue},
        success: $("#wedstrijden").submit(function () {
            console.log("updated");
        })
    })
}
function getAllWedstijdenCallback(data) {
//    console.log(data);
    $.each(data, function (i, val) {
        if (val <= 5) {
            console.log("need to add wedstrijden to the database");
//            addDataToDatabase();
        } else {
            createFormLine(val);
        }
    });
}

function createFormLine(data) {
    console.log(data);
    $thuisClub = data.thuisClub;
    $thuisPoint = data.thuisPunt;
    $uitClub = data.uitClub;
    $uitPoint = data.uitPunt;
    console.log("test");
    if ($thuisPoint == null || $uitPoint == null) {
        $("#wedstrijden").prepend("<div class='fromLine'><div class='labels'> " +
            $thuisClub + " - " + $uitClub
            + "</div><span class='wedstrijdId'></span><label for='voor'>voor</label><input class='voor numberInput' type='number' placeholder=" + $thuisPoint + "> <label for='tegen'>tegen</label>" +
            "<input class='tegen numberInput' type='number' placeholder=" + $uitPoint + "> <input class='sbm-button' type='submit' value='ok'> </div>");
    }
}

这是服务器代码

require_once 'settings.php';
$mysqli = mysqli_connect($db_host, $db_user, $db_password, $db_database);
if (mysqli_connect_error()) {
    echo mysqli_connect_error($mysqli) . "We are not able to connect to the online database";
}
if (isset($_GET['club']) && !empty($_GET['club'])) {
    jsondecode($mysqli);
}
else if(isset($_GET['id'])){
    updatePoints($mysqli);
}
else if (isset($_GET['thuisPoint']) && !empty($_GET['thuisPoint']) && ($_GET['uitPoint']) && ($_GET['uitPoint'])) {
    updatePoints($mysqli);
} else{
    getWedstrijd($mysqli);
}
function jsondecode($mysqli)
{
    $apiLink = 'http://docent.cmi.hr.nl/moora/imp03/api/wedstrijden?club=';
//    $club = $_GET['club'];
    $data = json_decode(file_get_contents($apiLink . "Ajax"));
    foreach ($data as $data => $info) {
        $thuisClub = $info->homeClub;
        $uitClub = $info->awayClub;
        addWestrijden($mysqli, $thuisClub, $uitClub);
    }
}

//querys
function addWestrijden($mysqli, $thuisClub, $uitClub)
{
    $query = "INSERT INTO wedstrijd (thuisClub, uitClub) VALUES('$thuisClub', '$uitClub')";
    $resultAddWedstrijd = mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));
    getWedstrijd($mysqli);
}

function getWedstrijd($mysqli)
{
    $query = "SELECT * FROM wedstrijd ORDER BY thuisClub DESC";
    $resultGetWedstijd = mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));
    while ($result = mysqli_fetch_assoc($resultGetWedstijd)){
        $rows []= $result;
    }
    header("Content-Type: application/json");
    echo json_encode($rows);
    exit;
}

function updatePoints($mysqli)
{
    $id = $_GET['id'];
    $thuisPoints = $_GET['thuisPoint'];
    $uitPoints = $_GET['uitPoint'];
    $query = "UPDATE wedstrijd SET thuisPunt = '$thuisPoints', uitPunt = '$uitPoints') WHERE id = '$id'";
    mysqli_query($mysqli, $query) or die(mysqli_error($mysqli));
    getWedstrijd($mysqli);
}

1 个答案:

答案 0 :(得分:0)

您需要在updateAjaxCall函数内定义预期参数:

function updateAjaxCall($idValue, $inputTegenValue, $inputVoorValue)
{
    //...
}

编辑:

以下变量也存在问题,这会给您以下评论中提到的错误:

$inputVoorValue = $(this, '.voor')[0].val();
$inputTegenValue = $(this, '.tegen').val();
$idValue = $(this + 'wedstijdId').val();

如果要在表单中找到输入值,请执行以下操作:

$('#wedstrijden .voor')[0].val();

$("#wedstrijden").submit(function(event){
    alert("Handler for .submit() called!");
    event.preventDefault();
    submitHandler($(this));
});

...

function submitHandler(form) {
    $inputVoorValue = form.find('.voor')[0].val();
}