Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ajax请求后从php获取响应文本_Php_Jquery_Ajax - Fatal编程技术网

在ajax请求后从php获取响应文本

在ajax请求后从php获取响应文本,php,jquery,ajax,Php,Jquery,Ajax,我想将数据添加到数据库中,并从访问数据库的php返回响应 javascript代码: var request = $.ajax({ type: "POST", url: "nieuwDuel.php", data: dataString, success: function(response) { var responseText = "onbekend"; responseText = jQuery(response); document.getElementById(

我想将数据添加到数据库中,并从访问数据库的php返回响应

javascript代码:

var request = $.ajax({
type: "POST",
url: "nieuwDuel.php",
data: dataString,
success: function(response)
{
    var responseText = "onbekend";
    responseText = jQuery(response);
    document.getElementById("duelToegevoegd").innerHTML=responseText;
    $( "#openstaandeDuels" ).load( "getOpenstaandeDuels.php" );
}
});
因此,当a名称无效或已经存在时,我可以将此消息添加到html中的span元素中

这是我的php代码:

<?php
if($_POST)
{
    // Create connection
    $con=mysqli_connect("localhost","root","root","websitedb");

    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $date = getdate();
    $date_time = $date['year'] . "-" . $date['mon'] . "-" . $date['mday'] . " " . $date['hours'] . ":" . $date['minutes'] . ":" . $date['seconds'];

    $uitdagerArray = mysqli_query($con,"SELECT id FROM deelnemers WHERE naam='" . $_POST['uitdager'] . "'");
    $uitgedaagdeArray = mysqli_query($con,"SELECT id FROM deelnemers WHERE naam='" . $_POST['uitgedaagde'] . "'");

    $uitdager = mysqli_fetch_array($uitdagerArray);
    $uitgedaagde = mysqli_fetch_array($uitgedaagdeArray);

    $uitdagerId = $uitdager['id'];
    $uitgedaagdeId = $uitgedaagde['id'];

    $sql="INSERT INTO duels (uitdager, uitgedaagde, aanmaakdatum, gespeeld) VALUES ('" . $uitdagerId . "','" . $uitgedaagdeId . "','" . $date_time . "','" .  "0" . "')";

    if(!mysqli_query($con,$sql)) {
        echo mysql_errno() . ": " . mysql_error() . "\n";
    }
    else {
        echo "Duel Toegevoegd";
    }
    mysqli_close($con);
}
?>

是的,它应该可以工作。尝试将您的JS更改为

var request = $.ajax({
    type: "POST",
    url: "nieuwDuel.php",
    data: dataString,
    success: function(response)
    {
        console.log(response);//This will output the response you are getting to the console so you can check it
        $("#duelToegevoegd").html(response);
        $( "#openstaandeDuels" ).load( "getOpenstaandeDuels.php" );
    }
});
我也不会把你收到的任何错误反馈给客户

echo "Failed to connect to MySQL: " . mysqli_connect_error();

虽然这取决于用户是谁,但您不希望任何未经授权的人看到这些错误

我假设您的PHP代码是正确的。那么您需要更改的是jQuery代码

只需更改以下代码:

具体如下:

我不知道你打算用它做什么

所以,我暂时不谈了


希望它有帮助

它总是传递给成功函数(除非有错误)。我看不出有什么问题。是的,这就是我们应该做的。在success语句的最后一行,尝试添加alert(response)以查看它。response是从ajax调用中检索到的文本,您可以通过jquery回显或放入html元素。。所以jsut do document.getElementById(“dueltogegevoegd”).innerHTML(响应);是
#openstaandeDuels
的元素子元素吗???你目前得到的结果是什么?有错误吗?警报正常,我得到了想要的响应。但它不需要在输入字段下用span元素显示响应。问题似乎是“document.getElementById(“DuelTogegVoegd”).innerHTML=response”无法工作。有什么建议吗?我更新了我的代码,但仍然不起作用。我已经在我的问题中发布了我的html。$(“#openstaandeDuels”).load(“getOpenstaandeDuels.php”)可以工作。我在向数据库添加数据后更新了页面,因此我的网页上的表会用新数据更新。从您的HTML来看,我认为这是因为您的#duelToegevoegd的CSS当前显示为none。尝试添加$('dueltogegevoegd').css('diplay','block');我忘了我的html中有display:non。这是因为我首先在jQuery中使用了隐藏和显示函数。现在它工作得很好!我得到的响应文本是可以的,但我想在html的输入字段下显示它。你对错误的看法是对的,我应该把它们改成用户友好的界面
echo "Failed to connect to MySQL: " . mysqli_connect_error();
responseText = jQuery(response);
document.getElementById("duelToegevoegd").innerHTML=responseText;
responseText = response;
$('#duelToegevoegd').html(responseText);
$( "#openstaandeDuels" ).load( "getOpenstaandeDuels.php" );