如何使用PHP替换HTML元素内容(纯文本)的属性

我制作了一个表格,其中包含联系信息并将其发送至电子邮件。 它的工作期望我有超过2000种选择的城市。 城市下拉发送值,这只是一个数字。 我希望表单发送城市,这是HTML元素内容而不是属性中的值编号。 我不想用城市替换2000个不同的值。 我知道循环是可行的,但我不知道如何创建它。</ p>

HTML - </ p>

&lt; option value =“2”&gt;洛杉矶 - CA&lt; /选项&gt; </ code> </ p>

PHP - </ p>

  $ city = $  _REQUEST ['city']; 

if($ _SERVER ['REQUEST_METHOD'] =='POST'){
mail(“$ webmaster_email”,“Submission”,“$ city”,From:$ email“) ;
header(“Location:$ thankyou_page”);
</ code> </ pre>
</ div>

展开原文

原文

I making a form that will take contact info and send it to an email. It works expect the cities which I have more than 2000 options. The cities drop down sends the value, which is just a number. I want the form to send the city, which is HTML element content not the value number in the attribute. I do not want to replace the 2000 different values with the cities. I know a loop would the way to go but I don't know how to create it.

HTML -

<option value="2" >Los Angeles - CA</option>

PHP -

$city = $_REQUEST['city'] ;

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
       mail( "$webmaster_email", "Submission", "$city,"From:$email" );
header( "Location: $thankyou_page" );

dongzouhe9734
dongzouhe9734 您是否愿意在页面中添加Javascript?
7 年多之前 回复
duanduo0520
duanduo0520 我有一个巨大的2000选项列表
7 年多之前 回复
duanmei1922
duanmei1922 如何以及在哪里存储2000个城市的选项?
7 年多之前 回复
dqrsceg6279196
dqrsceg6279196 为什么循环?使用数组。
7 年多之前 回复

3个回答



我相信您要发送文本</ em>而不是值</ em> <代码>选项</代码>。 对吗?</ p>

我建议你在表单上创建这个元素:&lt; input type ='hidden'id ='city_name'name ='city_name'/&gt; </ code>当用户选择他想要的选项时,用JavaScript保存 select </ code>值。 然后,在 select </ code>上创建和事件,如下所示:</ p>

 &lt; select onchange =“document.getElementById('city_name')。value = this  .options [this.selectedIndex] .text;“&gt; 
</ code> </ pre>

所以你将拥有 $ _ POST ['city_name'] </ code> 可以在您的PHP代码上找到。</ p>
</ div>

展开原文

原文

I believe you want to send the text and not the value from the option. Right?

I suggest you to create this element on your form: <input type='hidden' id='city_name' name='city_name' /> to hold the select value with JavaScript when user select his desired option. Then, create and event on the select like this:

<select onchange="document.getElementById('city_name').value=this.options[this.selectedIndex].text;">

So you'll have the $_POST['city_name'] available on your PHP code.

duanbu1421
duanbu1421 我知道了。 谢谢!
7 年多之前 回复
doudiejian5827
doudiejian5827 不是那样的。 看看我的编辑。 事件发生在select标签上,如下所示:<select onchange =“document.getElementById('city_name')。value = this.options [this.selectedIndex] .text;”>
7 年多之前 回复
dongposhi8677
dongposhi8677 请原谅我最新的,但这是我需要的所有Js吗?<script type =“text / javascript”> onchange =“document.getElementById('city_name')。value = this.options [this.selectedIndex] .text; “ </ SCRIPT>
7 年多之前 回复
dtye7921
dtye7921 所以代码会为你做。 我没有测试它,但它应该工作。 顺便说一下,语法高亮显示你的代码中有你的错误和错误在这里“$ city,修复到这个”$ city“,否则你会有语法错误。
7 年多之前 回复
dongtu1789
dongtu1789 正确我想捕获元素中的纯HTML文本。 然后我想把它发送到电子邮件而不是号码,因为当办公室得到号码时,他们将不知道如何处理它。
7 年多之前 回复



使用数组!

例如:</ p>

 &lt;?php 
$ cities = array(
'0'=&gt;'New York - NY',
'1'=&gt; ;'...'
'2'=&gt;'...'
);
if(isset($ cities [$ _ REQUEST ['city']])){
$ city = $ cities [$ _REQUEST ['city']];
} else {
$ city = $ _REQUEST ['city'];
}

if($ _SERVER ['REQUEST_METHOD'] =='POST') {
mail(“$ webmaster_email”,“Submission”,“$ city”,From:$ email“);
header(”Location:$ thankyou_page“);
}
?&gt;
</ 代码> </ pre>
</ div>

展开原文

原文

Use an array! Example:

<?php
    $cities = array(
        '0' => 'New York - NY',
        '1' => '...'
        '2' => '...'
    );
    if (isset($cities[$_REQUEST['city']])) {
        $city = $cities[$_REQUEST['city']];
    } else {
        $city = $_REQUEST['city'];
    }

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        mail( "$webmaster_email", "Submission", "$city,"From:$email" );
        header( "Location: $thankyou_page" );
    }
?>



据推测,您在服务器上生成了&lt; option&gt; </ code>列表,例如: 数组:</ p>

  $ locations = array(
...
2 =&gt;'洛杉矶 - CA'
...
);
</ code> </ pre>

然后你只需要</ p>

  $ place = $ locations [$ _ REQUEST ['city']];

</ code> </ pre>

获取选项的文本。</ p>

或者,您可以在选项中嵌入完整的城市名称:</ p>

 &lt; option value =“Los Angeles  -  CA”&gt; Lost Angeles  -  CA&lt; / option&gt; 
</ code> </ pre>
</ div>

展开原文

原文

Presumably you produced that <option> list with something on the server, e.g. an array:

$locations = array(
   ...
   2 => 'Los Angeles - CA'
   ...
);

then you'd simply have

$place = $locations[$_REQUEST['city']];

to get the text for the option.

Alternatively, you embed the full city name in the option:

<option value="Los Angeles - CA">Lost Angeles - CA</option>

dongshu4221
dongshu4221 只是简单的HTML
7 年多之前 回复
dongyounai6281
dongyounai6281 无所谓。 或者某个地方的代码可用选项列表,或者必须重写html列表。 表格将提交2,如OP的代码所示,如​​果没有某种查找/翻译系统,没有办法将该2翻译成洛杉矶。
7 年多之前 回复
dtmtu02882
dtmtu02882 这个清单在哪里? 在您的JS或HTML或数据库中?
7 年多之前 回复
doucu5836
doucu5836 对不起,不,我有一个巨大的2000选项列表...
7 年多之前 回复
dtj88302
dtj88302 问题是他不想以第二种方式重写所有选项。
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐