私は何時間も探していましたが、問題の解決策が見つかりませんでした。
これは私のjQuery/Ajaxコードです:
$(document).ready(function() {
$(".submit_btn").click(function () {
var name = $("input#name").val();
var dataString = 'query='+$("#query").val()+'&facebook='+facebook+'&twitter='+twitter;
$.ajax({
type: "POST",
url: "selectDataSets.php",
dataType: "json",
data: dataString,
success: function(data) {
alert ("hello");
}
});
return false;
});
});
今私のselectDataSets.phpコード:
<?
include_once 'config.php';
if ((isset($_POST['facebook'])||isset($_POST['twitter']))&&isset($_POST['query'])) {
$elements=0;
$dataSet=array();
$tt=array();
$fb=array();
mysql_connect($config['database_url'], $config['database_user'], $config['database_password']) or die(mysql_error());
$queries = explode(";", $_POST['query']);
foreach ($queries as $query){
if(isset($_POST['facebook']) && $_POST['facebook'] == true){
mysql_select_db("facebook") or die(mysql_error());
$mysql_query = "SELECT * FROM page WHERE lower(name) LIKE '%".mysql_real_escape_string(strtolower($query))."%'";
// Perform Query
$result = mysql_query($mysql_query);
while ($row = mysql_fetch_assoc($result)) {
$set = array(
"name" => str_replace("-","",$row['name']),
"likes" => $row['likes'],
"about" => $row['talkAbout'],
"source" => "Facebook (Page)",
"id" => $row["id"],
"query" => $query
);
$fb[$elements]=$set;
$elements++;
}
mysql_free_result($result);
}
}
mysql_close();
echo json_encode($fb);
}
ではdataType: "json"
、alert("Hello")
成功コールバック内に何も追加しないだけでなく、機能しません。を削除するdataType: "json"
と、アラートは機能しますが、変数データは JSON として認識されません (実行しようとすると未定義になり続けるためdata[0].name
) [ { "name: ... } ]
。と完全に動作する別のphpファイルに同様の(ほぼ同じ)コードがあるため、他に何をすべきかわかりませんdataType: "json"
。
前もって感謝します!