好的,所以我在网上找到了很多教程,并逐步完成了每一个教程.我的问题是我知道javascript / jQuery比我知道的PHP好得多,我无法弄清楚如何调试那部分出了什么问题.基本上我有一堆按钮和一个按钮,当按下按钮时,它确定表单中的默认值.
jQuery Side
$(document).ready(function(){
// CSPC and ADDUPDATE TOGGLE ARE DEFINED GLOBALLY
$('ul#parts').on('click','button',function(){
ADDUPDATETOGGLE = "ADD";
CSPC = $(this).attr("data-cspc");
var form = $('div.sidebar form'),sr = 0;
form.find("#cspc").val(CSPC);
$.ajax({
type: "GET",url: "getRate.PHP",data: "pid=A5843",dataType: "json",success: function(data){
sr = data;
}
});
form.find("#strokeRate").val(sr);
showForm();
});
});
PHP端
PHP
$host = "localhost";
$user = "username";
$pass = "password";
$databaseName = "movedb";
$tableName = "part parameters";
$con = MysqL_connect($host,$user,$pass);
$dbs = MysqL_select_db($databaseName,$con);
//get the parameter from URL
$pid=$_GET["pid"];
if (empty($pid)){
echo "1"; //default rate
}
else{
$db=MysqL_pconnect("localhost");//connect to local database
MysqL_select_db("movedb",$db);//select the database you want to use
if (!$db){
echo ("error connecting to database");
}
else{
//connection successful
$sql = "SELECT 'Processing Rate (ppm)' FROM 'part parameters' WHERE 'Part Number' LIKE '" . $pid . "'";//sql string command
$result=MysqL_query($sql);//execute sql string command
//result contains rows
$rows = MysqL_fetch_row($result)
echo json_encode($rows["Processing Rate (ppm)"]);
}
}
?>
任何想法为什么sr没有设置?
我离开基地了吗?
我也会无耻地注意到我不知道$user和$pass应该设置为什么.我无法在任何地方找到解释
提前致谢!
编辑:我按照下面的大部分指示,现在我跑了
http://localhost/getRate.PHP?pid=A5843
它说“没有选择数据库”.此外,我现在无法访问我们原来的MS Access文件(我的一个团队成员拥有它)但是一旦我得到它,我将把所有标题组成一个单词标题.这是我们在网络编程/数据库管理方面的第一份工作,所以我们不断学习.
最佳答案
$user和$pass应设置为您的MysqL用户的用户名和密码.
我会用这样的东西:
JS
success: function(data){
if(data.status === 1){
sr = data.rows;
}else{
// db query Failed,use data.message to get error message
}
}
PHP:
PHP
$host = "localhost";
$user = "username";
$pass = "password";
$databaseName = "movedb";
$tableName = "part parameters";
$con = MysqL_pconnect($host,$pass);
$dbs = MysqL_select_db($databaseName,$con);
//get the parameter from URL
$pid = $_GET["pid"];
if(empty($pid)){
echo json_encode(array('status' => 0,'message' => 'PID invalid.'));
} else{
if (!$dbs){
echo json_encode(array('status' => 0,'message' => 'Couldn\'t connect to the db'));
}
else{
//connection successful
$sql = "SELECT `Processing Rate (ppm)` FROM `part parameters` WHERE `Part Number` LIKE `" . MysqLi_real_escape_string($pid) . "`"; //sql string command
$result = MysqL_query($sql) or die(MysqL_error());//execute sql string command
if(MysqL_num_rows($result) > 0){
$rows = MysqL_fetch_row($result);
echo json_encode(array('status' => 1,'rows' => $rows["Processing Rate (ppm)"]);
}else{
echo json_encode(array('status' => 0,'message' => 'Couldn\'t find processing rate for the give PID.'));
}
}
}
?>
正如另一位用户所说,你应该尝试重命名没有空格的数据库字段,因此part parameters => part_parameters,Part Number =>零件号.
如果你仍然遇到麻烦(只要它不是生产服务器)把它放在你的PHP文件的顶部:
error_reporting(E_ALL);
ini_set('display_errors','1');