0

我有 html 文件客户端(跨平台应用程序的一部分)输出到 php 文件并需要返回一个变量或字符串,它正确地发布数据但没有接收回来。

这是在提交时触发的(客户端.html):

 var $form = $( this ),
         $submit = $form.find( 'button[type="submit"]' ),
         username_value = $form.find( 'input[name="username"]' ).val(),
         password_value = $form.find( 'input[name="password"]' ).val(),

         url =  $form.attr('action');

     /* Send the data using post */

      $.post(url, {username: username_value, password: password_value},function (data) {

        alert(data);
    });

这是 php 文件:

<?php
$username   = $_POST['username'];
$password   = $_POST['password'];

$DBusername = 'root';
$DBpassword = '';
$project = mysql_connect('localhost',$DBusername, $DBpassword);

mysql_select_db('PickMeUpDatabase', $project);

$sql="SELECT * FROM users WHERE username='$username' and password='$password'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);


if($count==1){
echo 'console.log("hi");'; 
        $message = "saved successfully";
        echo $message;
}
else
{
    $sql = "Insert into users Values('me','myself','I','".$username."','Irene')";
mysql_query($sql);
        echo "Helooo";
}
    ?>

我知道 php 文件在这一点上真的没有意义我为调试做了很多更改,但是“else”语句中的 mysql 查询正在传递并添加到数据库中,但它下面的回显没有返回到它将在 html 中被提醒。事实上,我可以更改 html 中的警报来提醒任何事情,但它不会发生。

4

1 回答 1

0

发生这种情况可能有很多原因。

您是否打开了错误报告?如果没有,请将其放在 php 分隔符之后:

ini_set( "display_errors", true );

另外,数据是跨域发送的吗?把它放在上面的行之后,

 header('Access-Control-Allow-Origin: *');

现在,它可能正在发布,但这并不一定意味着数据在服务器端可用。当我在 JQuery 中使用 post() 函数时,我更喜欢字符串作为数据参数。看起来一些变量也未定义。

所以我会这样重写它:

 var $form = $( this ),
         $submit = $form.find( 'button[type="submit"]' ),
         username_value = $form.find( 'input[name="username"]' ).val(),
         password_value = $form.find( 'input[name="password"]' ).val(),

          /* Turn the variables into strings- for simplicity! */
         url =  "http://localhost/location/of/php_file.php";


      var data='username='+username_value+'&password='+password_value;
      $.post(url, data, function (data) {

        alert(data);
    });

那应该再清理一下。

于 2013-10-10T22:56:20.827 回答