我公开了我的案例,我选择了 mysql 数据并用 php 和 smarty 填充了一个组合,然后我有一个按钮可以向这个组合和 bbdd 添加更多数据。一切正常,但我在 POST 数据收集添加到组合中的数据时没有拾取它
代码:
带有 smarty 的 HTML 代码填充组合,以及将新数据添加到组合的按钮
<form action="algo.php" method="post">
<div class="form-field">
<label for="cliente_sector">Sector*</label>
<select name="cliente_sector" id="cliente_sector">
{section name=sector loop=$sectores}
<option value="{$sectores[sector].sector}">{$sectores[sector].sector}</option>
{/section}
</select>
<p>Sector del cliente</p>
<label onclick="javascript:anadir('divAnadir')">Nuevo sector</label>
</div>
<div id="divAnadir" style="display: none;">
Nuevo sector:<input type="text" id="nuevo_sector" name="nuevo_sector" value=""/>
<input onclick="javascript:nuevoSector()" type="button" value="Añadir nuevo sector "/>
</div>
</form>
javascript函数
function anadir(a){
if(document.getElementById(a).style.display=="none")
$("#divAnadir").css("display", "block");
else
$("#divAnadir").css("display", "none");
}
function nuevoSector(){
var datos = document.getElementById("nuevo_sector").value;
$.get("/ajax/altaNuevoSector.php?sector="+datos, datos, function(data){
if(data != 1) {
alert('Nuevo sector añadido');
$("#divAnadir").css("display", "none");
$("#cliente_sector").append('<option value=" " selected="selected">'+data+'</option>')
return true;
}else{
alert('Este sector ya existe, pruebe de nuevo.');
return false;
}
});
}
用于更新 bbdd 和响应 javascript 的 PHP 脚本:
<?php
session_start();
require_once('../includes/config.php');
if($_GET['sector']){
$sql = "INSERT INTO clientes_sectores(sector) VALUES ('".$_GET['sector']."')";
$consulta = $con->ejecutar($sql);
if(!is_numeric($consulta))
echo '1';
else
echo $_GET['sector'];
}
?>
一切正常,数据被添加到 bbdd 并显示在组合中,问题是组合是一种形式,通过邮寄我尝试选择数据,如果值 cliente_sector 是新的,不让我选择它, $ _POST ['cliente_sector'] 被清空。我如何解决它?当我在我的表单中提交 $_POST['clientes_sector'] 时,如果在组合中选择了新值。
谢谢