使用AJAX+返回值;JQuery+;PHP
基本上,我正在尝试使用JQuery+AJAX从PHP文件返回任何内容,以及它如何不返回任何内容。我试图找出问题,但没能解决。 PHP文件工作得非常好 有人能告诉我为什么不工作吗使用AJAX+返回值;JQuery+;PHP,php,jquery,Php,Jquery,基本上,我正在尝试使用JQuery+AJAX从PHP文件返回任何内容,以及它如何不返回任何内容。我试图找出问题,但没能解决。 PHP文件工作得非常好 有人能告诉我为什么不工作吗 $("#iForm").submit( function(){ var user = $("input:[name=username]").val(); var password = $("input:[name=password]").val(); var dbName = $("input:[
$("#iForm").submit( function(){
var user = $("input:[name=username]").val();
var password = $("input:[name=password]").val();
var dbName = $("input:[name=dbName]").val();
var server = $("input:[name=server]").val();
$.get("1.php", {username: user, password: password, dbName: dbName, server: server },function(data){
$("p").html (data);
return false;
})
})
})
</script>
<!-- Yes or No form -->
<form name="yN" style= "display: show; margin-left: auto; margin-right: auto; width: 6em">
<input type="radio" name="yN" value="1">yes</input>
<input type="radio" name="yN" value="0">no</input>
<button id=1 >click me!</button>
</form>
<!-- Login Form -->
<form id="iForm" style= "display: show">
<label id="username" >Username</label>
<input id="username" name="username"/>
<label id="password">Password</label>
<input id="password" name="password" />
<label id="server" >Server</label>
<input id="server" name="server"/>
<label id="dbName" >dbName</label>
<input id="dbName" name="dbname"/>
<input type="submit" value="submit" />
<p> </p>
$(“#iForm”).submit(函数(){
var user=$(“输入:[name=username]”).val();
var password=$(“输入:[name=password]”).val();
var dbName=$(“输入:[name=dbName]”).val();
var server=$(“输入:[name=server]”).val();
$.get(“1.php”,{username:user,password:password,dbName:dbName,server:server},函数(数据){
$(“p”).html(数据);
返回false;
})
})
})
对
不
点击我!
用户名
密码
服务器
数据库名
PHP文件
function createfile ($dbFile) {
//Creates File and populates it.
$fOpen = fopen($dbFile, 'w');
global $username, $password, $server, $dbname;
$fString .= "<?php\n";
$fString .= "// Database Constants\n";
$fString .= "\$DB_SERVER =" . "\"" . $server . "\";\n";
$fString .= "\$DB_USER =" . "\"" . $username . "\";\n";
$fString .= "\$DB_PASS =" . "\"" . $password . "\";\n";
$fString .= "\$DB_NAME =". "\"" . $dbname . "\";\n";
$fString .= "?>";
fwrite($fOpen, $fString);
fclose($fOpen);
return true;
}
$username = $_GET['username'];
$password = $_GET['password'];
$server = $_GET['server'];
$dbname = $_GET['dbname'];
try {
$db = new PDO ('mysql:host=' .$server.';dbname='.$dbname,$username,$password);
if ($db) { //if succesful at connecting to the DB
if (file_exists($dbFile)){
if (is_readable($dbFile) && is_writable($dbFile)){
//Creates File, populates it and redirects the user
if (createfile($dbFile)) {
echo "finito";
exit ();
}
} else {
echo "The file {$dbFile} cannot be accessed. Please configure the file manualy or grant Write and Read permission."; }
} else {
//Creates File, populates it and redirects the user
if (createfile($dbFile)) {
echo "finito";
exit ();
}
}
}
} catch (PDOException $e) { //Catchs error if can't connect to the db.
echo 'Connection failed: ' . $e->getMessage();
}
?>
函数createfile($dbFile){
//创建文件并填充它。
$fOpen=fOpen($dbFile,'w');
全局$username、$password、$server、$dbname;
$f字符串=“”;
fwrite($fOpen,$fString);
fclose($fOpen);
返回true;
}
$username=$_GET['username'];
$password=$_GET['password'];
$server=$_GET['server'];
$dbname=$_GET['dbname'];
试一试{
$db=new-PDO('mysql:host='.$server'.;dbname='.$dbname,$username,$password);
if($db){//if成功连接到数据库
如果(文件_存在($dbFile)){
如果(可读($dbFile)和可写($dbFile)){
//创建文件、填充文件并重定向用户
如果(createfile($dbFile)){
呼应“菲尼托”;
退出();
}
}否则{
echo“无法访问文件{$dbFile}。请手动配置文件或授予写入和读取权限。”;}
}否则{
//创建文件、填充文件并重定向用户
if(createfile($dbFile)){
呼应“菲尼托”;
退出();
}
}
}
}catch(PDOException$e){//catch错误,如果无法连接到数据库。
回显“连接失败:”。$e->getMessage();
}
?>
假设您的问题是没有“return false”;或者e.preventDefault()
在submit
处理程序中
请尝试以下代码:
$("#iForm").submit( function(e){
e.preventDefault();
var user = $("input:[name=username]").val();
var password = $("input:[name=password]").val();
var dbName = $("input:[name=dbName]").val();
var server = $("input:[name=server]").val();
$.get("1.php", {username: user, password: password, dbName: dbName, server: server },function(data){
$("p").html (data);
return false;
})
})
})
假设您的问题是不存在“returnfalse”;或者
e.preventDefault()
在submit
处理程序中
请尝试以下代码:
$("#iForm").submit( function(e){
e.preventDefault();
var user = $("input:[name=username]").val();
var password = $("input:[name=password]").val();
var dbName = $("input:[name=dbName]").val();
var server = $("input:[name=server]").val();
$.get("1.php", {username: user, password: password, dbName: dbName, server: server },function(data){
$("p").html (data);
return false;
})
})
})
您的选择器错误,属性选择器中没有
:
,您需要阻止表单提交,因此$(“输入:[名称=用户名]”)
应该是$(“输入[名称=用户名]”)
并将参数[0]。preventDefault()
添加到提交处理程序中。另外,从ajax回调中添加一个返回false也没有任何效果。您的选择器是错误的,属性选择器中没有:
,您需要阻止表单提交,因此$(
应该是$(
并添加参数[0]。preventDefault()
提交给您的提交处理程序。另外,从ajax回调中添加一个返回false也不会产生任何效果。Cmon现在,您至少可以找出问题出在Javascript还是PHP上。试试看发生了什么错误。您可以阅读以下内容:。希望对.Cmon有所帮助,您至少可以找出问题出在Javascript上,还是在PHP.try上,看看发生了什么错误。您可以阅读以下内容:。希望能帮助。在$(“p”).html(数据)下有一个返回false;是的)但是它确实从这个函数(data){$(“p”).html(data)返回;返回false;}
函数您也可以将它放在成功处理程序范围之外。这应该也可以,您总是可以使用jQuery表单插件。它的工作原理与您所拥有的非常相似,但您不需要任何var user=$(“输入:[name=username]”).val()
看起来确实错误(参见@Musa answer)在$(“p”).html(数据)下有一个返回false;是的)但是它确实从这个函数(data){$(“p”).html(data)返回;返回false;}
函数您也可以将它放在成功处理程序范围之外。这应该也可以,您总是可以使用jQuery表单插件。它的工作原理与您所拥有的非常相似,但您不需要任何var user=$(“输入:[name=username]”).val()代码>看起来确实有问题(请参见@Musa-answer)