我想澄清瀏覽器腳本(如javascript/jquery)與服務器端腳本(如PHP)的區別以及如何允許它們彼此交互。誤解瀏覽器與服務器腳本?
如果我在我的html代碼中有php代碼,javascript definitly不能更改任何腳本,因爲它不是真的。服務器首先讀取php代碼,然後將其輸出(以及該文件中的任何普通html代碼)發送到Web瀏覽器,以便Web瀏覽器永遠不會看到所有的PHP代碼。另一方面,PHP無法看到DOM,因爲它還沒有在瀏覽器中,因此在javascript方面是動態的。你讓他們互動的方式是與AJAX ...
我的問題是:我有jQuery的ajax調用哪個調用PHP文件來創建一個表和表中的數據有一個鏈接。是否有任何理由,當我從這個PHP文件創建表,我現在不能通過另一個jQuery/JavaScript調用訪問它? 這是我的代碼:
$(document).ready(function()
{
$("#build_table, .Course_Name, .Start_Date, .Book_Title, .Book_Author, .Book_Isbn").click(function()
{
var whichButton = $(this).attr("class");
console.log("Whichbotton = " + whichButton);
var prog = $("#program option:selected").text();
var sch = $("#school option:selected").text();
var trm = $("#term option:selected").text();
var ext = $("#extension option:selected").text();
if(prog == "" || sch == "" || trm == "")
{
alert("Please enter a selection for each field");
}
else
{
$.get("build_table.php", {program: prog, school: sch, term: trm, extension: ext, button: whichButton},
function(table)
{ console.log("Entered table function");
$("#input_table").replaceWith("<div id='input_table'>" + table + "</div>");
});
}
});
});
和我的PHP文件片段:
$program = $_GET["program"];
$school = $_GET["school"];
$term = $_GET["term"];
$extension = $_GET["extension"];
$button = $_GET["button"];
$con = mysql_connect("127.0.0.1","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$term = str_replace(" ", "", $term);
$sql = "SELECT * FROM tbl_name WHERE Dep1= '" . $program . "' AND Dep2= '" . $school . "' AND Dep3 = '" . $term . "'";
if($button == "build_table")
{
//add nothing
}
else
{ echo $button;
$button = str_replace("_", " ", $button);
$sql = $sql . "ORDER BY `" . $button . "` DESC";
}
mysql_select_db("csv_db", $con);
$result = mysql_query($sql) or die(mysql_error());
echo $sql;
$num_rows = mysql_num_rows($result);
echo "<br>Number of Rows: " . $num_rows;
echo "<table id='booklist'><tr>
<th>Edit</th>
<th class='coursename'><a href='#' class='Course_Name'>Course Name</a></th>
<th class='startdate'><a href='#'>Start Date</a></th>
<th class='booktitle'><a href='#'>Book Title</></th>
<th class='bookauthor'><a href='#'>Book Author</a></th>
<th class='bookisbn'><a href='#' class='Course Name'>Book ISBN</a></th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>
<td><input type='checkbox'></input></td>
<td class='coursename'>" . $row['Course Name'] . "</td>
<td class='startdate'>" . $row['Start Date'] . "</td>
<td class='booktitle'>" . $row['Book Title']. "</td>
<td class='author'>" . $row['Book Author']. "</td>
<td class='isbn'><input class='ISBN_number' type='text' value='' size='13' maxlength='13'></input></td>
</tr>";
}
echo "</table>";
mysql_close($con);
我試圖使它的是,當我在標題點擊(表)課程名稱將排序課程名稱欄(是的,有一個空間...反引號照顧它。)它不起作用。在另一方面,當我試圖把一個簡單的HTML到我正常的HTML代碼
<a href="#" class="Course_Name" value="Course Name Sort">Course Name Sort</a>
現在如我所料工作。我是否錯過了一個概念,或者我只是在做一個簡單的錯誤?
這真是令人困惑 - 也許你可以簡化你所問的問題,或者告訴我們你在哪裏縮小了問題的範圍。你的AJAX調用是否工作等? – jedwards