变量没有通过?

Jos*_*he4 0 javascript php ajax

我有这个代码

while($row = mysql_fetch_row($result))
{
echo '<tr>';
$pk = $row[0]['ARTICLE_NO'];

foreach($row as $key => $value)
{
echo '<td><a href="#" onclick="GetAuctionData(\''.$pk.'\')">' . $value . '</a></td>';
}
Run Code Online (Sandbox Code Playgroud)

得到PK.然后将pk传递给axjax部分:

function GetAuctionData(pk)
{
.....
var url="get_auction.php?"
url=url+"cmd=GetAuctionData&pk="+pk;
Run Code Online (Sandbox Code Playgroud)

最后在一个单独的php文件中使用:

$pk = $_GET["pk"];
$sql="SELECT * FROM Auctions WHERE ARTICLE_NO ='$pk'";
Run Code Online (Sandbox Code Playgroud)

第二个php文件在单独使用它并传递参数时工作正常.同样,任何地方都没有错误.问题似乎是传递或生成$ pk,因为输出文件中的链接导致$ pk被增加2,例如4,6,8等

我不明白为什么会这样.

OIS*_*OIS 5

mysql_fetch_row 链接没有子数组.它将第一个字段返回0,然后返回1,等等.

试试吧

$pk = $row[0];
Run Code Online (Sandbox Code Playgroud)

这可以很容易地与您的foreach一起使用

while($row = mysql_fetch_assoc($result))
$pk = $row['ARTICLE_NO'];
Run Code Online (Sandbox Code Playgroud)

或者这会给你关联和编号的数组.

while($row = mysql_fetch_array($result, MYSQL_BOTH))
$pk = $row['ARTICLE_NO'];
Run Code Online (Sandbox Code Playgroud)

编辑:基于

$result = mysql_query("SELECT SELLER_ID, ACCESSSTARTS, ARTICLE_NAME FROM {$table}");
Run Code Online (Sandbox Code Playgroud)

您必须包含要从中获取值的行.;)

$result = mysql_query("ARTICLE_NO, SELECT SELLER_ID, ACCESSSTARTS, ARTICLE_NAME FROM {$table}");
Run Code Online (Sandbox Code Playgroud)

顺便说一句:我很确定这个嵌套循环不会产生你想要的东西.您将获得每个article_no的3个链接.第一个使用seller_id作为文本,第二个文本是accessstarts,而具有相同href的最后一个链接将具有文本article_name.

也许是这样的?

while($row = mysql_fetch_assoc($result))
{
    $pk = $row['ARTICLE_NO'];
    echo '<td><a href="#" onclick="GetAuctionData(\''.$pk.'\')">' . $row['ARTICLE_NAME'] . '</a></td>';
}
Run Code Online (Sandbox Code Playgroud)