У меня есть таблица, которая структурирована, как показано ниже. Вместо того, чтобы просто ссылаться на внешние PHP-скрипты, я хочу, чтобы скрипт PHP выполнялся в DIV, который появляется под соответствующей строкой. Я понял, что это можно сделать, вставив строку, которая охватывает таблицу с DIV в ней, а затем загружает внешний скрипт в этот DIV.
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr class="tableTitle">
<td></td>
<td>Category</td>
<td>Price</td>
<td>Stock</td>
<td>Options</td>
</tr>
<tr>
<td><a href="getProduct.php?id=634">007: Quantum of Solace</a></td>
<td>Gaming > Xbox 360 > Games > Shooter</td>
<td>$22.00</td>
<td>0</td>
<td><a href="productDelete.php?id=634">delete</a></td>
</tr>
<tr>
<td><a href="getProduct.php?id=711">2006 FIFA World Cup Germany</a></td>
<td>Gaming > Xbox 360 > Games > Sports</td>
<td>$9.00</td>
<td>0</td>
<td><a href="productDelete.php?id=711">delete</a></td>
</tr>
<tr>
<td><a href="getProduct.php?id=148">2010 FIFA World Cup South Africa</a></td>
<td>Gaming > PlayStation 3</td>
<td>$15.00</td>
<td>0</td>
<td><a href="productDelete.php?id=148">delete</a></td>
</tr>
</table>
Это код jQuery, который я пытался сделать:
$("a").click( function(event) {
var clicked = $(this);
$.get($(this).attr('href'),
function(data){
$(clicked).next().find('tr').after(data);
});
});
Любая помощь приветствуется :)
Хорошо, я сам это использовал, используя Prototype вместо jQuery. Надеюсь, это поможет другим.
JavaScript:
<script src="js/prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function getDetails(targetDiv) {
new Ajax.Updater(targetDiv, 'productGet.php', { method: 'get', parameters: 'id='+targetDiv });
}
</script>
HTML:
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr class="tableTitle">
<td></td>
<td>Category</td>
<td>Price</td>
<td>Stock</td>
<td>Options</td>
</tr>
<tr>
<td><a href="javascript:void(0)" onclick="javascript:getDetails(pid634); return false;">007: Quantum of Solace</a>
</td>
<td>Gaming > Xbox 360 > Games > Shooter</td>
<td>$22.00</td>
<td>0</td>
<td><a href="productDelete.php?id=634">delete</a>
</td>
</tr>
<tr>
<td colspan="5"><div id="pid634"></div></td>
</tr>
<tr>
<td><a href="javascript:void(0)" onclick="javascript:getDetails(pid711); return false;">2006 FIFA World Cup Germany</a>
<br>
<span class="offset">2006 FIFA World Cup</span>
</td>
<td>Gaming > Xbox 360 > Games > Sports</td>
<td>$9.00</td>
<td>0</td>
<td><a href="productDelete.php?id=711">delete</a>
<br>
<a href="productDelete.php?id=711&aliasId=0">delete</a>
</td>
</tr>
<tr>
<td colspan="5"><div id="pid711"></div></td>
</tr>
<tr>
<td><a href="javascript:void(0)" onclick="javascript:getDetails(pid148); return false;">2010 FIFA World Cup South Africa</a>
</td>
<td>Gaming > PlayStation 3</td>
<td>$15.00</td>
<td>0</td>
<td><a href="productDelete.php?id=148">delete</a>
</td>
</tr>
<tr>
<td colspan="5"><div id="pid148"></div></td>
</tr>
</table>
Если вы используете jQuery, а также Prototype, обязательно избегайте любых столкновений:
<script type="text/javascript">
var $j = jQuery.noConflict();
</script>
Я считаю, что вы говорите, что хотите php внутри своего html div, вот пример, надеюсь, что это поможет.
<?php
$con = mysql_connect("localhost", "cis246", "t@sk93")
or exit(mysql_error());
$db = mysql_select_db("students",$con)
or die(mysql_error());
$sql = mysql_query("select * from CIS110");
echo "<table cellspacing='0' border='1'>";
echo "<tr><th>SID</th><th>FirstName</th><th>LastName</th></tr>";
while($row = mysql_fetch_object($sql)) {
$sid = $row -> SID;
$LastName = $row -> LastName;
$firstName = $row -> FirstName;
echo("<tr><td>$sid</td><td>$LastName</td><td>$FirstName</td></tr>");
}
echo "</table>";
mysql_close($con);
?>
Невозможно фактически выполнить скрипт PHP в документе по требованию (с javascript). Что вы можете сделать, это использовать IFRAME и загрузки документа в том, что, используя target
атрибут a
тег:
<a href=somescript.php target=product123>Link</a>
...
<iframe id=product123 frameborder=0></iframe>
Это загрузит href ссылки в iframe, указанный id в целевом атрибуте с любым javascript. И не забудьте скрыть свой iframe каким-либо образом (css? Js?) До тех пор, пока не будет нажата требуемая ссылка. Вы также можете динамически создавать и вставлять iframe при нажатии ссылки, но я думаю, что это ограничивается одним и тем же доменом.