2010-09-15 91 views
2

请帮助我,我在我的项目中遇到了这个脚本。这是HTML数组还是PHP数组?这是html数组还是php数组?

<input type="hidden" name="newsletter['.$var["id"].'][someid]" value="'.$var['id'].'" /> 
+10

什么是HTML数组? – 2010-09-15 20:46:51

回答

3

这两者之间的结合。例如,以下内容:

<input type='text' name='arr[foo]' value='fooValue' /> 
<input type='text' name='arr[bar]' value='barValue' /> 

交房时,这将是由PHP读取到名为arr一个数组,看起来像这样:

$_POST['arr'] (
    'foo' => 'fooValue', 
    'bar' => 'barValue' 
) 

这使得能够将数组传递给你的PHP脚本要么通过生成PHP,要么通过JavaScript或类似的方法来简化。

你必须使用PHP阵列生成一些HTML,然后可以理解为,在未来的PHP脚本数组,但HTML本身并n要拥有一个数组的概念的具体例子。

+0

你真是太亲密了hehe – RobertPitt 2010-09-15 20:53:07

+0

@RobertPitt忽略我的格式不正确的语义正确的方式,我错过了什么? – Tarka 2010-09-15 21:05:12

+0

您解释了PHP如何接收POST数据,而不是PHP如何实际与HTML数据结合使用,例如'' – RobertPitt 2010-09-15 21:11:57

3

它看起来像是PHP脚本的一部分。我想象中的其余部分看起来是这样的:

$html = '<input type="hidden" name="newsletter[' . $var["id"] . 
     '][someid]" value="' . $var['id'] . '" />' 

当评估应该产生类似下面的HTML字符串:

<input type="hidden" name="newsletter[123][someid]" value="123" /> 
3

让我们打破这种下来..

<input type="hidden" name="newsletter['.$var["id"].'][someid]" value="'.$var['id'].'" /> 

没有PHP ...

<input type="hidden" name="newsletter[removed][someid]" value="removed" /> 

是一个HTML输入字段设置张贴作为数组。如果你调用$_POST['newsletter']它会返回一个数组。所以这部分是一个HTML数组。

$var["id"] PHP变量是一个数组。它调用$ var关联数组的“id”索引。

所以它既是一个HTML数组又是一个PHP数组。如果要执行这个领域,并使用下面的代码片断分析PHP后的数据:

if (isset($_POST['newsletter'])) 
die(print_r($_POST)); 

$var = array('id' => 2); // assume $var['id'] = 2 

echo "<form method='post'>"; 
echo '<input type="hidden" name="newsletter['.$var["id"].'][someid]" value="'.$var['id'].'" />'; 
echo "<input type='submit' />"; 
echo "</form>"; 

一旦提交,你会看到在$ _ POST [“通讯”]

Array 
(
    [newsletter] => Array 
     (
      [2] => Array 
       (
        [someid] => 2 
       ) 
     ) 
) 
0

HTML以下数组没有数组的概念。

所有输入将成为DOM中的HTMLFormElementelements集合的一部分(可通过客户端JS访问)。

输入的名称将,当交给PHP脚本,原因PHP将其扩展到在在$_REQUEST分配给newsletter键另一个关联阵列分配给一个键的关联数组分配给一个键的值以及$_GET$_POST超全局数组。