Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用下拉菜单更改数据库值时出错_Php_Javascript_Sql_Ajax_Menu - Fatal编程技术网

Php 使用下拉菜单更改数据库值时出错

Php 使用下拉菜单更改数据库值时出错,php,javascript,sql,ajax,menu,Php,Javascript,Sql,Ajax,Menu,当我选择下拉菜单选项将数据库中的值更改为选定值时,会出现以下错误: SyntaxError: missing ) after argument list changeGroup("email@email.com") 基本上我想做的是我有一个储存联系人的应用程序,在“未分组联系人”部分有下拉菜单,当你从中选择一个值时,它会提交值并使用该值更新数据库。我使用: action='javascript:changeGroup(".$contactDetails.") 告诉update语句要更新的联系

当我选择下拉菜单选项将数据库中的值更改为选定值时,会出现以下错误:

SyntaxError: missing ) after argument list changeGroup("email@email.com")
基本上我想做的是我有一个储存联系人的应用程序,在“未分组联系人”部分有下拉菜单,当你从中选择一个值时,它会提交值并使用该值更新数据库。我使用:

action='javascript:changeGroup(".$contactDetails.")
告诉update语句要更新的联系人

我的代码:

<!--Include Database connections info-->
<?php include('config.php'); ?>

<!--Links to CSS file for formatting-->
<link href="Contacts.css" rel="stylesheet" type="text/css"/>

<!--Links to Javascript file for the for action to change the group of a contact-->
<script src="ajax.js" language="javascript"></script>

<?php

$contactDetails = $_GET['contactDetails'];

    $cdquery="SELECT * FROM `contacts` WHERE `newEmail` = '$contactDetails'";
    $cdresult=mysql_query($cdquery) or die ("Query to get data from first table failed: ".mysql_error());

  while ($row = mysql_fetch_assoc($cdresult)) 
  {

    echo "" . $row['newFname'] . " " . $row['newLname'] . "'s " . "Details:";
    echo "<table>";
    echo "<tr>";
    echo "<th>Name:</th>";
    echo "<th>Email Address:</th>";
    echo "<th>Phone:</th>";
    echo "<th>Postal Address:</th>";
    echo "<th>Group:</th>";
    echo "</tr>";

        echo "<tr>";
        echo "<td>" . $row['newFname'] . " " . $row['newLname'] . "</td>";
        echo "<td>" . $row['newEmail'] . "</td>";
        echo "<td>" . $row['newPhone'] . "</td>";
        echo "<td>" . $row['newAddress'] . "</td>";
        echo "<td>" . $row['group'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";

    echo "<form action='javascript:changeGroup(".$contactDetails.")' method='get'> Add contact to 
    <select id='group' name='group' onchange='this.form.submit(value=this.options[this.selectedIndex].value)'>
    <option>Select a group...</option> 
    <option value='Family'>Family</option> 
    <option value='Friends'>Friends</option> 
    <option value='Colleagues'>Colleagues</option></select>
    group.</form>";

mysql_close($link);

?>
php:



我真的不知道你的代码是做什么的,我也没有耐心在我这端完全复制它,但现在你正在向函数传递一个变量,而不是字符串,在这行:

echo "<form action='javascript:changeGroup(".$contactDetails.")' method='get'> Add contact to 
echo“将联系人添加到
要解决此问题,您需要将字符串作为实际字符串引用:

echo "<form action='javascript:changeGroup(\'".$contactDetails."\')' method='get'> Add contact to 
echo“将联系人添加到
我想这是你的主要问题。如果没有这些引号,javascript会将回显变量视为js变量,而不是字符串

关于您的数据库交互…


此外,您正在使用不推荐的。。并且很快将被删除数据库交互API。我建议PDO替换它,它可以防止注入攻击,并且在不久的将来不会被删除。

您的代码容易受到注入攻击。@Corey如果此答案解决了您的问题,请单击答案旁边的勾选符号接受它。
echo "<form action='javascript:changeGroup(".$contactDetails.")' method='get'> Add contact to 
echo "<form action='javascript:changeGroup(\'".$contactDetails."\')' method='get'> Add contact to