将javascript变量添加到PHP变量中

时间:2013-04-30 14:53:37

标签: php javascript mysql ajax

原谅我,但我是新人。我有一个PHP脚本生成一个HTML选择元素,该元素使用mySQL数据库生成的联系信息动态填充选项。联系信息包括名字,姓名和电话号码。我创建了第二个HTML select元素,该元素在开头时是空的。

创建了两个java脚本功能。第一个叫做addcontacts,这个函数的工作是从第一个select元素中删除联系人,然后将它们添加到第二个select元素中。第二个javascript函数,removeContacts,反过来。

一旦将所有想要的联系人添加到第二个选择元素,我希望只将电话号码添加到php数组中。我们的想法是将短信发送到所选的号码。

这是我的代码,

html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Sender</title>
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<script>
function addContact()
{
    var cont = document.getElementById("contacts");
var snd = document.getElementById("send");
var opt = document.createElement("option");
for (var i=0; i <cont.options.length; i++)
{
    if(cont.options[i].selected == true)
    {
        var selOpt = cont.options[i];
        opt.value = selOpt.value;
        opt.text = selOpt.text;
        try
        {
            snd.add(opt,null);
            cont.remove(i,null);
        }
        catch(error)
        {
            snd.add(opt);
            cont.remove(i);
        }
        i--;
    }
}
//snd.options.add(opt);
//opt.text = name;
//opt.name = id;
}
function removeContact()
{
var cont = document.getElementById("send");
var snd = document.getElementById("contacts");
var opt = document.createElement("option");
for (var i=0; i <cont.options.length; i++)
{
    if(cont.options[i].selected == true)
    {
        var selOpt = cont.options[i];
        opt.value = selOpt.value;
        opt.text = selOpt.text;
        try
        {
            snd.add(opt,null);
            cont.remove(i,null);
        }
        catch(error)
        {
            snd.add(opt);
            cont.remove(i);
        }
        i--;
    }`enter code here`
}
}
  </script>
   <h2>Sender- Send Message</h2>
   <form method="post" action="send.php">
    <fieldset id="message">
<?php

echo 'Hello '. $_SESSION['username'].' <br/>';

?>
<br/>
<label for="firstname">Please enter your name:</label>
<input type="text" id="firstname" name="firstname" /><br />
<br/>

<label for="message">Please type your message</label>
<br/>

<textarea id="message" name="message"></textarea><br />
<br/>
<br />

    <?php

    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="contacts"; // Database name 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");
    $userID = $_SESSION['userID'];

 $query = "SELECT contactID, firstName, secondName, phone_number FROM   phone_numbers                 WHERE userID = $userID ";
    $result=mysql_query($query);
    $phone_numbers = array();
    echo "<select name='contacts' id='contacts'  multiple
            style='width:200px'>";
    while($row = mysql_fetch_array($result)) {

        echo "<option value=".$row['contactID']. ">".$row['firstName'].'   '.$row['secondName'].' - ' .$row['phone_number']."</option>";
    }
    echo "</select>";






?>

<input type="button" onclick="addContact()"  value="Add"/>
<input type="button" onclick="removeContact()"  value="Remove"/>
<br/>
<select name="send" id="send"  multiple style="width:200px">
<input type="submit" value="Add Contact" name="addcontact" />


</select>
<br />
<br />

<label for="number"> Or type in a single number: </label>
<br/>
<input type= "text" id="number" name="number"/>
<br/>
<br />
<input type="submit" value="Send Message" name="submit" />
<input type="submit" value="Logout" name="logout" />
</fieldset>
</form>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

PHP在服务器端执行。 JavaScript在客户端执行。在向用户显示页面之前,PHP已完成其工作。您需要重定向,刷新或发出AJAX请求,但重点是您需要以某种方式将信息发送回服务器。

所以,回答你的问题......不,你不能从JavaScript设置PHP变量。

相关问题