[英]Callback from client-side not working
我有客戶端的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中更改警報以警報任何事情,並且它不會發生。
發生這種情況的原因可能有很多。
您是否已打開錯誤報告? 如果不是,請將其放在php分隔符之后:
ini_set( "display_errors", true );
另外,數據是否跨域發送? 將其放在上一行之后,
header('Access-Control-Allow-Origin: *');
現在,可能是POST,但這並不一定意味着數據可以在服務器端使用。 每當我在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);
});
那應該清理多一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.