2017-03-01 63 views
0

嘿我目前有一个问题,试图使我的输入按钮有我需要的ID /服务器的值,它显示不同的值这是我的代码目前看起来我知道HTML和形式是无效的,我将重构它不过我想如果你想产生大量的形式来获得服务器标识和身份标识跨越到另一个页面PHP按钮点击 - 值/ ID传递

<?php 
$propertyType = $xmlDom1->getElementsByTagName('PropertyType'); 
$rent = $xmlDom1->getElementsByTagName('rates'); 
$rooms = $xmlDom1->getElementsByTagName('rooms'); 
//$server = $xmlDom1->getElementsByTagName('server'); 
$propertyServer = $xmlDom1->getElementsByTagName('Property'); 
$propertyID = $xmlDom1->getElementsByTagName('Property'); 
$imageURL = $xmlDom1->getElementsByTagName('url'); 
$imageAlt = $xmlDom1->getElementsByTagName('altText'); 
$server = $propertyID->item($i)->getAttribute('server'); 
echo '<form action="level5Details.php" method="get" enctype="application/x-www-form-urlencoded">'; 
echo '<table><th>Type:</th><th>Rent:</th><th>Rooms:</th><th>Server</th>'; 
$records = $xmlDom1->documentElement->childNodes; 
for ($i = 0; $i < $records->length; $i++) { 
    echo "<tr><td>".$propertyType->item($i)->nodeValue."</td>"; 
    echo "<td>".$rent->item($i)->nodeValue."</td>"; 
    echo "<td>".$rooms->item($i)->nodeValue."</td>"; 
    echo "<td>".$propertyServer->item($i)->getAttribute('Server')."</td>"; 
    echo '<td><img src="data:image/jpeg;base64,'.$imageURL->item($i)->nodeValue.'" alt="'.$imageAlt->item($i)->nodeValue.'"></img></td>'; 
?> 
    <td> 
     <button class="submit" type="submit" value="<?php echo $propertyID->item($i)->getAttribute('pid'); ?>" name="submit22">something </button> 
    </td> 
</tr> 
<?php 
} 
?> 
</form> 
+1

数据为什么你在循环内创建表单标签? – Naincy

+1

首先,您需要停止创建无效的HTML - “form”不能是“table”的子元素,您需要将表格放入表格中,或将表格放在单个表格单元格中。 – CBroe

+0

变量'$ propertyType'包含什么? –

回答

0

每个只有一个按钮,那么你需要把表格放在这样的表格单元格中

将隐藏的数据项目隐藏起来可能也很有用字段,而不是试图把2个数据项的按钮值

<?php 
$propertyType = $xmlDom1->getElementsByTagName('PropertyType'); 
$rent = $xmlDom1->getElementsByTagName('rates'); 
$rooms = $xmlDom1->getElementsByTagName('rooms'); 
//$server = $xmlDom1->getElementsByTagName('server'); 
$propertyServer = $xmlDom1->getElementsByTagName('Property'); 
$propertyID = $xmlDom1->getElementsByTagName('Property'); 
$imageURL = $xmlDom1->getElementsByTagName('url'); 
$imageAlt = $xmlDom1->getElementsByTagName('altText'); 
$server = $propertyID->item($i)->getAttribute('server'); 
echo '<table><th>Type:</th><th>Rent:</th><th>Rooms:</th><th>Server</th>'; 
$records = $xmlDom1->documentElement->childNodes; 
for ($i = 0; $i < $records->length; $i++) { 
    echo "<tr><td>".$propertyType->item($i)->nodeValue."</td>"; 
    echo "<td>".$rent->item($i)->nodeValue."</td>"; 
    echo "<td>".$rooms->item($i)->nodeValue."</td>"; 
    echo "<td>".$propertyServer->item($i)->getAttribute('Server')."</td>"; 
    echo '<td><img src="data:image/jpeg;base64,'.$imageURL->item($i)->nodeValue.'" alt="'.$imageAlt->item($i)->nodeValue.'"></img></td>'; 

    $pid = $propertyID->item($i)->getAttribute('pid'); 
?> 
    <td> 
     <form action="level5Details.php" method="get" enctype="application/x-www-form-urlencoded"> 
      <input type="hidden" name="pid" value="<?php echo $pid;?>"> 
      <input type="hidden" name="server" value="<?php echo $server;?>"> 
      <button class="submit" type="submit" value="submit" name="submit22">something</button> 
     </form> 
    </td> 
    </tr> 
<?php 
} 
?> 

如果你只是想按钮来进行所有的数据,只有一个形式,你将有2个数据项打包成一个字符串,并发送它作为按钮

<?php 
$propertyType = $xmlDom1->getElementsByTagName('PropertyType'); 
$rent = $xmlDom1->getElementsByTagName('rates'); 
$rooms = $xmlDom1->getElementsByTagName('rooms'); 
//$server = $xmlDom1->getElementsByTagName('server'); 
$propertyServer = $xmlDom1->getElementsByTagName('Property'); 
$propertyID = $xmlDom1->getElementsByTagName('Property'); 
$imageURL = $xmlDom1->getElementsByTagName('url'); 
$imageAlt = $xmlDom1->getElementsByTagName('altText'); 
$server = $propertyID->item($i)->getAttribute('server'); 

echo '<form action="level5Details.php" method="get" enctype="application/x-www-form-urlencoded">'; 

echo '<table><th>Type:</th><th>Rent:</th><th>Rooms:</th><th>Server</th>'; 
$records = $xmlDom1->documentElement->childNodes; 

for ($i = 0; $i < $records->length; $i++) { 
    echo "<tr><td>".$propertyType->item($i)->nodeValue."</td>"; 
    echo "<td>".$rent->item($i)->nodeValue."</td>"; 
    echo "<td>".$rooms->item($i)->nodeValue."</td>"; 
    echo "<td>".$propertyServer->item($i)->getAttribute('Server')."</td>"; 
    echo '<td><img src="data:image/jpeg;base64,'.$imageURL->item($i)->nodeValue.'" alt="'.$imageAlt->item($i)->nodeValue.'"></img></td>'; 

    $dataPackage = $propertyID->item($i)->getAttribute('pid') . ':' . $server; 
?> 
    <td> 
     <button class="submit" type="submit" value="<?php echo $dataPackage;?>" name="submit22">something</button> 

    </td> 
    </tr> 
<?php 
} 
</table> 
</form> 
?> 

现在在接收形式的价值解压使用

<?php 
// usual checks for things existing 
list($pid, $server) = explode(':', $_GET['submit22']; 
+0

是的,我不确定哪个编程更好,有很多形式或只有一个,因为他们都指的是相同的地方,这实际上非常好,实际上非常感谢你,我试图通过每个按钮点击id和服务器所以按钮1的值为1,它所属的服务器的值为 – jamied

+0

从你的代码中,'server'在整个循环中保持不变,但每次循环都会改变'pid'。所以你肯定需要多个按钮? – RiggsFolly

+0

那么按钮是为了携带信息ID和服务器到另一个页面,然后用于该网页的其余部分 – jamied